求大佬指教单片机16位数据的BCD码转换

2019-07-15 08:29发布

就是这种这种8位的十六进制数temp(0~255)
百位 bai=temp/100;
temp=temp%100;//取余数
shi=temp/10;
ge=temp%10;

16位的也是一样,只是先除以1000(不太懂后面的)

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
llzzkkxl
2019-07-16 12:11
PKZz 发表于 2018-5-5 10:41
改成了unsigned long int 还是在只能显示小与255的数,请问是不是51单片机只能计算8位的原因?16位数据是不是要分成2部分来计算?

51单片机RAM是8位,因此计算的数据限于8位2进制数,最大的8位2进制数即255,要想计算出更大的数据就要区分高位和低位,对于16位数据,分为高8位和低8位,在程序编写时要将高8位和低8位分别存在两个寄存器中计算。最大的16位的2进制数是2的17次方减一,可以容易的表示千位甚至万位的10进制数。

一周热门 更多>