1,函数功能:十进制数转换为BCD码
思路:(1)将十进制数 24拆分成 2 和 4
(2)将2 和 4 组合成0x24
代码:
static unsigend int num_1_bcd(unsigned int num)
{
return (((num / 10) << 4) | (num % 10));
}
解析: (1)((num / 10) << 4),利用除法将2取出来,放到 'bit[4~7]' 位
(2) (num % 10),取余,将4取出来
(3) 两者相或,就是 0x24
2,函数功能:bcd码转换 为 十进制
思路:(1)将0x24拆分为2 和 4
(2)组合成 24
代码:
static unsigned int bcd_2_num(unsigend int bcd)
{
return ((((bcd & 0xf0) >> 4)*10) + (bcd & 0x0f));
}
解析:(1)同上一样,0xf0 对应的是 'bit(4~7)'; 取出高4位