Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1016848
  • 博文数量: 297
  • 博客积分: 11721
  • 博客等级: 上将
  • 技术积分: 3431
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-25 10:21
文章分类

全部博文(297)

文章存档

2016年(9)

2011年(71)

2010年(137)

2009年(80)

分类: C/C++

2010-05-25 14:26:07

用四位二进制代码来表示一位十进制 数,称为二--十进制编码,简称BCDBinary Coded Decimal) 码。根据代码的每一位是否有权值BCD码可分为有权码无权码两类,应用最多的是8421BCD码,无权码用得较多的是余三码和格雷码,我们通常所说的BCD码 指的是8421BCD码。这些编码跟十进制数对应的关系如下:
十进制数 8421BCD码 余3码   格雷码
0 0000 0011 0000
1 0001 0100 0001
2 0010 0101 0011
3 0011 0110 0010
4 0100 0111 0110
5 0101 1000 1110
6 0110
1001
1010
7 0111 1010 1000
8 1000 1011 1100
9 1001 1100 0100
8421BCD码中的“8421”表示从高到低各位二进制位 对应的权值分别为8421,将各二进制位与权值相乘,并将乘积相加就得相应 的十进制数。例如,8421BCD码“0111”,0×81×41×21×17D,其中D表示十进制(Decimal)数。

    值得特别注意的是,8421BCD码只有00001001共十个,而10101011...等等不是8421BCD码!!

余三码是在8421BCD码的基础上,把每个数的代码加 上0011(对应十进制数3)后得到的。格雷码的编码规则是相邻的两代 码之间只有一位二进制位不同。不管是8421BCD码还是余三码还是格雷码,总是4个二进制位对应一个十进制数, 如十进制数18对应的8421BCD码就是0001  1000

压缩的BCD码用4个 二进制位来表示十进制数,上面提到的就是压缩的BCD码。而非压缩BCD码用一个字节(八个二进制位)表示 一位十进制数,高4位总是0000,低4位的00001001表示相应的十进制数。例如,十进制数87D,采 用非压缩8421BCD码表示为二进制数是00001000 00000111B。这种非压缩BCD码主要用于非数值计算的应用领域中。

阅读(3337) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~