中易网

请问这个C51中的这个函数可以把BCD码转换成十进制,具体原理是怎么执行的呀

答案:2  悬赏:40  
解决时间 2021-03-05 23:42
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类型才能转换。
最佳答案
Decimal=bcd>>4;先取bcd码的高位,因为整个BCD码表示数不会超过99,所以定义成uchar就完全可以了。 return(Decimal=Decimal*10+(bcd&=0x0F)),就是高位乘10加上原来数的低位,这就转成10进制数了。
全部回答
就是调用函数的时候敲错了函数名,也可以通过了。编译的时候只检查参数个数是否匹配和函数体内部语法这种情况我也见过,不会进行真正的调用,所以只能检出一个没有用的调用,不会出现错误
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
ゼ㏑是什麼意思
怎样去掉pdf文档中的水印?
沈阳东方德利货站地址有知道的么?有点事想过
你坐在那个角落 你还在回忆我对你的好 是那首
廉江市东恒门业有限公司在什么地方啊,我要过
学生证上的籍贯是填户口本上的还是生源所在地
口算24乘3,应先算什么再算什么最后算什么
如何调整过压继电器的吸合值和欠电压继电器的
广东陶瓷批发这个地址在什么地方,我要处理点
基督徒向神祷告是学来的吗?
My soul time July(忧伤还是快乐)的原作者Ju
每年定期存银行1万元,连续存20年。20年后是
74HC125芯片功能
西安综合职业中专好不好
晋中学院的专科属于几专了??
推荐资讯
求太阳的后裔ost全部的百度云谢谢了!!
涛宇酒店地址在哪,我要去那里办事
首先,我没被狗咬过,但是潜意识认为被狗咬了
电影《巴黎春梦》的下载地址?
求鲜网 H一个男主是将军的文文
arcmap中怎样进行影像拼接
体彩关于世界杯有什么彩票?
妈妈戴了几年的玉可不可以送给女儿啊
四川时代百盛南门我想知道这个在什么地方
金剪刀剪烫造型在什么地方啊,我要过去处理事
身为广州大学城的一员上次听到了21CN超能团的
金融资本与产业资本有什么区别
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?