湖北理工学院电子技术协会
直播中

a972043362

10年用户 47经验值
私信 关注
[讨论]

关于BCD码转换的问题


     if((tiME[SetPlace]&0x0f)>9)      //换成BCD码。
     {
      TIME[SetPlace]=TIME[SetPlace]+6;
     }
   BCD代码。Binary-Coded Decimal‎,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。
BCD码是通过4位二进制码来表示1位十进制中的0~9这10个数码。
二进制码转换为BCD码的方式为:4位二进制码大于1001时,加6。   1001比较特殊,为十进制下的9,二进制下超过1001即进位
如:BCD码00001100的二进制码为:00001100+6=00010010
比如TIME[SetPlace]0x0a即在二进制00001010
0x0a&0x0f即        00001010
                           & 00001111   
                          =  00001010
00001010在十进制下为10,进入条件语句 TIME[SetPlace]=TIME[SetPlace]+6;
6即二进制下的0110
0x0a+6   为00001010+0110=0001 0000   (十进制下的10)

同理,当TIME[SetPlace]为0x0b 时通过上述语句可变成
00010001(十进制下的11)

回帖(1)

李诗语

2016-7-26 20:26:53
赞一个
举报

更多回帖

发帖
×
20
完善资料,
赚取积分