码迷,mamicode.com
首页 > 其他好文 > 详细

BCD码转换为十进制或者十进制转为BCD码

时间:2016-10-26 09:27:04      阅读:670      评论:0      收藏:0      [点我收藏+]

标签:define   个数   efi   bcd   分离   c程序   十进制   int   二进制   

BCD码其实就是之前在数字电路中说的 用4位二进制数值 来表示一个0-9中的数字,
例如: 0000=0 0001=1 0010=2 0011=3
也就是说如果把一个数字作为一个BCD码,例如: 11 22
那么他应该展开为: 00010001 00100010
也就是对应为十进制: 17 34
所以一个BCD吗转为十进制数据的思想就是: 将BCD码每个数字分离出来,例如上面的11
将十位的1分离出来然后右移4位乘上一个10 在加上 个位的数字即可。十进制转BCD码的
思想:将这个十进制数字用二进制表示,高4位表示的数字是多少 * 10再加上低四位表示
的数字,C程序如下:

#define BCD_to_Decimal(bcd) ((((bcd) / 10) >> 4) + (bcd) % 10);
#define Decimal_to_BCD(int dec) (((0xf0 & (dec)) >> 4)*10 + (0x0f & (dec)))

BCD码转换为十进制或者十进制转为BCD码

标签:define   个数   efi   bcd   分离   c程序   十进制   int   二进制   

原文地址:http://www.cnblogs.com/deng-tao/p/5999057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!