中易网

在C51编程中怎么把BCD码转换为十进制和二进制。。。。。

答案:3  悬赏:80  
解决时间 2021-01-14 20:07
  • 提问者网友:活着好累
  • 2021-01-14 12:43
在C51编程中怎么把BCD码转换为十进制和二进制。。。。。
最佳答案
  • 二级知识专家网友:人间朝暮
  • 2021-01-14 13:15
51中,二进制实际上是以十六进制表示,转换成16进制即可满足要求

例如BCD格式的十进制56: 为0x56
其十进制为56,方法如下:a为原数 b为转换后的十进制数 c为转换后的16进制
a=0x56;
temp1=a/16;
temp2=a%16;
b=temp1*10+temp2;

temp1=b/16;
temp2=b%16;
c=temp1*10+temp2;

结果:a=0x56b=56 c=0x38
追问:(⊙o⊙)可现在BCD码是从一个RAM单元开始存储,而且BCD码位数不定。。有可能是000100100011,怎么转换啊。。。O(∩_∩)O谢谢啊。。。
全部回答
  • 1楼网友:雪起风沙痕
  • 2021-01-14 14:23
首先要知道你所指的RAM单元有多少个字节,假设是2个字节,那说存放的数应该是0-9999
先取出高位计算,然后是低位。
  • 2楼网友:洎扰庸人
  • 2021-01-14 14:14
可现在BCD码是放在一个RAM单元而且位数不定。。有可能是000100100011,还有可能是8位,4位的,怎么转换啊。。。
---------------------
一个RAM单元而且位数不定 !!!怎么会有这样的问题?
一个RAM单元,只有8位数,怎么可能是 000100100011!!!
楼主基本概念不清,关闭这个题目吧。
追问:我表述的有问题,是这个BCD码是从一个固定的RAM单元开始储存,BCD码的位数不定。。。
我都说了是从一个固定的RAM开始存,一个单元存不下就自动跳下一个啊,不知道是谁看不懂。。。
追答:看来,BCD码的起始位置,已经确定了;
但是,BCD码的长度不定。
那么,进行转换,何时算完哪?
这就没有办法了。
楼主怎么了?给自己出这么一个难题!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息