20211025-BCD码和十进制之间的相互转换

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位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值