bcd码怎么转换成十六进制数?

如题所述

可以用加3移位法转换:

bcd码中只有0~9十进制数,但是在四位二进制中是16进制进1,因此在移位过程中要对二进制进行判断,当在移位之后的状态Qn+1大于9,要对Qn加6才可以。

例如:1000移位大于9加6为0001_0110,对应bcd码中的16。

也可以在移位之前进行判断,如果移位之前的Qn数据大于4,说明Qn+1会溢出,所以可以+3再进行移位,例如1000大于4,加3为1011然后再进行移位0001_0110,16和刚才结果是一样的。

简单的说,判断的目的是防止下一次移位,发生数据溢出的情况。

扩展资料:

1、BCD码的格式

计算机中的BCD码,经常使用的有两种格式,即分离BCD码,组合BCD码。所谓分离BCD码,即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为:_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示无关值。

组合BCD码,是将两位十进制数,存放在一个字节中,例82的存放格式是1000 0010

2、BCD码的加减运算

由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于计算机总是把数当作二进制数来运算,所以结果可能会出错。

例:用BCD码求38+49。

解决的办法是对二进制加法运算的结果采用\加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。

参考资料来源:BCD码-百度百科

温馨提示:答案为网友推荐,仅供参考
相似回答