BCD码转换成十进制再转成十六进制,为什么?

如题所述

bcd码也叫8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,这十个数每个数都有自己的8421码:   
0=0000   1=0001   2=0010   3=0011   4=0100   5=0101   6=0110   7=0111   8=1000   9=1001   
举个例子:   
321的8421码就是   
3 2 1   
0011 0010 0001   
原因:
0 0 1 1 =8x0+4x0+1x2+1x1 =3   
0 0 1 0=8x0+4x0+2x1+1x0=2.
0 0 0 1 =8x0+4x0+2x0+1x1 =1
 bcd码是四位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-02
BCD码在编程中是以十六进制方式显示的十进制数据。
第2个回答  2012-12-26
BCD码的运算法则
  BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数 9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如果相加时,本位产生了进位,也需加 6 进行修正。这样做的原因是,机器按二进制相加,所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,都要加 6 进行修正。下面举例说明。

  【例 1.3】 需要修正 BCD码运算值的举例。

  (1) 计算 5+8;(2) 计算 8+8

  解:(1) 将 5 和 8 以 8421 BCD输入机器,则运算如下:

  0 1 0 1

  +) 1 0 0 0

  1 1 0 1 结果大于 9

  +) 0 1 1 0 加 6 修正

  1 0 0 1 1 即13 的 BCD码

  结果是 0011,即十进制数 3,还产生了进位。5+8=13,结论正确。

  (2)将8以8421 BCD输入机器,则运算如下:

  1 0 0 0

  +)1 0 0 0

  1 0 0 0 0 结果大于9

  +)0 1 1 0 加6修正

  1 0 1 1 0 16的BCD码

  结果是0110,即十进制的6,而且产生进位。8+8=16,结论正确。

参考资料:http://baike.baidu.com/view/45179.htm

相似回答