简介
4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码,即BCD代码。Binary-Coded Decimal,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制(定义:其中各十进制数位都分别由二进制数字来表示的二进制编码记法。)“代码"。
定义
BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。
由于十进制数共有0、1、2、……、9十个数码,因此,至少需要4位二进制码来表示1位十进制数。4位二进制码共有2^4=16种码组,在这16种代码中,可以任选10种来表示10个十进制数码,共有N=16!/10!*(16-10)!约等于8008方种方案。常用的BCD代码列于末。
常用BCD编码方式及特点
最常用的BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。这种编码方式,在中国大陆称之为“8421码”(日常所说的BCD码大都是指8421BCD码形式)。除此以外,对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:
有权BCD码,如:8421(最常用)、2421、5421…
无权BCD码,如:余3码、格雷码…
常用BCD码
十进制数 8421码 5421码 2421码 余3码 余3循环码
0 0000 0000 0000 0011 0010
1 0001 0001 0001 0100 0110
2 0010 0010 0010 0101 0111
3 0011 0011 0011 0110 0101
4 0100 0100 0100 0111 0100
5 0101 1000 1011 1000 1100
6 0110 1001 1100 1001 1101
7 0111 1010 1101 1010 1111
8 1000 1011 1110 1011 1110
9 1001 1100 1111 1100 1010
特点 8421编码直观,好理解。
5421码和2421码中大于5的数字都是高位为1,5以下的高位为0。
余3码是8421码加上3,有上溢出和下溢出的空间。
格雷码相邻2个数有三位相同,只有一位不同。
什么是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
原因:0011=8x0+4x0+1x2+1x1=3 0010=8x0+4x0+2x1+1x0=2. 0001=8x0+4x0+2x0+1x1=1
具体: (bcd码是由四位二进制表示的一位十进制的码,故运算转换方面与普通二进制吗不同。 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 对应二进制1001。 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000
举例 某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为<U>__C</U>__。
A.00000001 00000011 00000111 B. 00000011 00000001 00000111
C.00000010 00000011 00000100 D. 00000011 00000001 00001001
解:(1)11101010转换为十进制:234
(2)按百位、十位和个位的顺序表示,应为<U>__C</U>__。
附注:压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节(一个字节是八个位)表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8
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
解:(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。
00010011 : 0001=1,0011=3
13 的 BCD码 结果是 0011,即十进制数 3,还产生了进位。5+8=13,结论正确。
(2)计算8+8
解: (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
00010110:0001=1,0110=6
16的BCD码
结果是0110,即十进制的6,而且产生进位。8+8=16,结论正确。
|