uchar
BCD_Decimal(uchar bcd)//BCD 码转十进制函数,输入 BCD,返回十进制
{
uchar Decimal;
Decimal=bcd>>4;
return(Decimal=Decimal*10+(bcd&=0x0F));
}
比如一个BCD码为0101 1001 (59), Decimal先得到bcd右移后的值为1001 0101,然后怎么就我想应该是把十位的数乘十再加上个位的值就可以得到十进制数了, 但是这个我觉得有点问题好像是不是Decimal应该定义成int类型才能转换。
请问这个C51中的这个函数可以把BCD码转换成十进制,具体原理是怎么执行的呀
答案:2 悬赏:40
解决时间 2021-03-05 23:42
- 提问者网友:冷天寄予
- 2021-03-05 08:00
最佳答案
- 二级知识专家网友:青春如此荒謬
- 2021-03-05 09:34
Decimal=bcd>>4;先取bcd码的高位,因为整个BCD码表示数不会超过99,所以定义成uchar就完全可以了。 return(Decimal=Decimal*10+(bcd&=0x0F)),就是高位乘10加上原来数的低位,这就转成10进制数了。
全部回答
- 1楼网友:一只傻青衣
- 2021-03-05 10:21
就是调用函数的时候敲错了函数名,也可以通过了。编译的时候只检查参数个数是否匹配和函数体内部语法这种情况我也见过,不会进行真正的调用,所以只能检出一个没有用的调用,不会出现错误
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯