打印本文 打印本文  关闭窗口 关闭窗口  
十进制有权码来源于瑞达科技网
作者:佚名  文章来源:网络  点击数  更新时间:2011/1/18   文章录入:瑞达  责任编辑:瑞达科技

十进制有权码

  是指表示一个十进制数位的4位基2码的每一位有确定的位权。
  用得最普遍的是8421码,即4个基2码位的权从高向低分别为8、4、2和1,使用基2码的0000、0001、…1001这10种组合,分别表示0到9这十个值。这种编码的优点是这4位基2码之间满足二进制的规则,而十进制数位之间则是十进制规则,故称这种编码为以二进制编码的十进制(Binary Coded Decimal)数,简称BCD码或二-十进制码。另一个优点是在数字符的ASCII码与这种编码之间的转换方便,即取每个数字符的ASCII码的低4位的值便直接得到该数字的BCD码,入/出操作简便。在计算机内实现BCD码之间的算术运算要复杂一些,在某些情况下,需要对加法运算的结果进行修正。修正规则是:

  若两个8421码数相加之和等于或小于1001,即10进制的9,不需要修正;
  若相加之和在10到15之间,一方面应向高位产生一进位,本位还要进行加6修正,进位是在进行加6修正时产生的;
  若相加之和在16和18之间时,向高位的进位会在相加过程中自己产生,对本位还需进行加6修正。下面给出三种情况下的具体例子。

  例如,1+8=9的运算结果是正确的,不必修正。

    0 0 0 1
   +)1 0 0 0    (1)10+(8)10=(9)10
  
    1 0 0 1

  而4+9的结果就必须用 +6 修正,进位是在修正过程中产生的。

    0 1 0 0
   +)1 0 0 1    (4)10+(9)10 =(1)10 (3)10
  
    1 1 0 1
  +) 0 1 1 0
  
   1 0 0 1 1

  而7+9的结果也必须用 +6 修正,进位是在相同加过程中产生的。

    0 1 1 1
   +)1 0 0 1    (7)10+(9)10 =(1)10(6)10
  
   1 0 0 0 0
  +) 0 1 1 0
  
   1 0 1 1 0

  另外几种有权码,如2421、5211、84-2-1、4311码(表2.9),也都是用4位有权基2码表示一个十进制数位,但这4位基2码之间并不符合二进制规则。这几种有权码的特性表现为:

  当采用2421、5211和4311编码时,任何两个十进制数位相加产生10或大于10的结果,相应的基2码相加会向高一位产生进位,有利于实现逢十进位的计数和加法规则。

  任何两个相加之和等于9的十进制数位的基2码,互为反码,即满足十进制数按9互补(9's Complement)的关系,有利于简化减法处理。表2.9给出的是上面提到的十进制数位的编码方案。

表2.9 四位有权码

十进制数
8421码
2421码
5211码
840201码
4311码

打印本文 打印本文  关闭窗口 关闭窗口