十进制与BCD码转换的算法详解_C 语言

来源:脚本之家  责任编辑:小易  
目录
BCD码算法原理总结

手头上在做的项目需要用到ds1302实时时钟,ds1302读出来的数据是BCD码,需要转换,写入也是。

BCD码

BCD是指用二进制来表示十进制数的编码,即用4位二进制来表示一位十进制数,因此4位二进制数表示最大的十进制数9(1001),只取十六个数中的十个数。

比如:

BCD码:0x99(153),该BCD码转换成十进制是99.

算法原理

十进制是逢十进一,而十六进制是逢十六进一,它们之间的每次进位差 6 6 ,所以一个十进制数要转换成BCD码,要先算清多进位的位数,比如,十进制99" role="presentation">进位了 99/10=9 99 / 10 = 9 次,每次进位和十六进制进位相比差 6 6 ,所以一共差了9×6=54" role="presentation">,即 99+54=153 99 + 54 = 153 (BCD)。BCD码转化成十进制码也一样。

代码

static uint8_t BCD2DEC(uint8_t bcd)  
{  
    return (bcd-(bcd>>4)*6);
}  

static uint8_t DEC2BCD(uint8_t dec)  
{  
    return (dec+(dec/10)*6);
} 

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注真格学网的更多内容!

您可能感兴趣的文章:Java之实现十进制与十六进制转换案例讲解一篇教程教你学会Python进制转换(十进制转二进制、八进制、十六进制)C# 进制转换的实现(二进制、十六进制、十进制互转)浅谈java二进制、十进制、十六进制、字符串之间的相互转换科学知识:二进制、八进制、十进制、十六进制转换

  • 本文相关:
  • c/c++ 连接mysql数据库的方法
  • c语言 位域详解及示例代码
  • c++实现打印1到最大的n位数
  • c语言结构体指针案例解析
  • c语言输入三角形边长判断其类型并输出面积实例代码
  • c/c++百行代码实现热门游戏消消乐功能的示例代码
  • c语言 以字符串的形式读写文件详解及示例代码
  • c语言实现变色进度条
  • c与c++之间相互调用实例方法讲解
  • c语言编程中借助pthreads库进行多线程编程的示例
  • Labview问题,关于十进制转换为BCD码,要将一个手机号码(前面...
  • 十进制转BCD码问题
  • 我的世界二进制转换BCD码的详细教程
  • 8421BCD码10010111对应的十进制数为(),二进制数为()
  • 单片机中,十进制数转成二进制怎么表示?用BCD码,还是直接二...
  • 如何将BCD数转换成十进制,2进制,16进制
  • 二进制与BCD码的转换
  • BCD码如何转换成十六进制数
  • BCD码转换成ASCII值
  • 8086汇编_将ASCII码表示的十进制数转换为二进制数
  • 如何将ICL8038输出波形的频率用BCD码显示出来
  • 您好,关于ds1302的十进制转换成十六进制有这样一种写法,我不...
  • C语言中如何用循环实现十进制数转换成二进制数
  • 如何把ASCII码转换成BCD码
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言r语言其它相关首页c 语言java之实现十进制与十六进制转换案例讲解一篇教程教你学会python进制转换(十进制转二进制、八进制、十六进制)c# 进制转换的实现(二进制、十六进制、十进制互转)浅谈java二进制、十进制、十六进制、字符串之间的相互转换科学知识:二进制、八进制、十进制、十六进制转换c/c++ 连接mysql数据库的方法c语言 位域详解及示例代码c++实现打印1到最大的n位数c语言结构体指针案例解析c语言输入三角形边长判断其类型并输出面积实例代码c/c++百行代码实现热门游戏消消乐功能的示例代码c语言 以字符串的形式读写文件详解及示例代码c语言实现变色进度条c与c++之间相互调用实例方法讲解c语言编程中借助pthreads库进行多线程编程的示例c语言程序设计50例(经典收藏)c语言10个经典小程序c语言字符串操作总结大全(超详细c语言文件操作函数大全(超详细)c语言运算符优先级列表(超详细)c语言字符数组与字符串的使用详解c语言/c++中如何产生随机数c++中的string常用函数用法总结深入理解c++中public、protectedc++常用字符串分割方法实例汇总c语言实现将字符和数字串到一起c++ 完备的运行时类型信息(动态类型信息)全面解析设计模式中的建造者模式及相关c+c++基于socket编程实现聊天室功能c语言的cps实现求fibonacci数列示例浅谈mfc 改变控件大小和位置qt creator使用教程的简单说明深入详解c编写windows服务程序的五个步骤浅谈vc++中的内联c语言多线程服务器的实现实例
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved