十进制数的二进制编码
在人机交互过程中,为了既满足系统中使用二进制数的要求,又
适应人们使用十进制数的习惯,通常用4位二进制代码对十进制数字
符号进行编码,简称为二-十进制代码,或称BCD(BinaryCodedDecimal)
码。它既有二进制的形式,又有十进制的特点。常用的BCD码有8421
码、2421码和余3码3种,它们与十进制数字符号对应的编码如表
1.4所示。
表1.4常用的3种BCD码进制字符8421码2421码余3码
1
1
2
3
4
5
6
7
81
91
一、8421码
8421码是最常用的一种有权码,其4位二进制码从高位至低位
的权依次为23、22、21、20,即为8、4、2、1,故称为8421码。按
8421码编码的0~9与用4位二进制数表示的0~9完全一样,所以,
8421码是一种人机联系时广泛使用的中间形式。
注意:
※8421码中不允许出现1010~1111四种组合,因为没有十进
制数字符号与其对应。
※十进制数字符号的8421码与相应ASCII码的低四位相同,这
一特点有利于简化输入输出过程中BCD码与字符代码的转换。
1.8421码与十进制数之间的转换
8421码与十进制数之间的转换是按位进行的,即十进制数的每
一位与4位二进制编码对应。
例如:
(258)10=()8421码
(1000)8421码=(1208)10
2.8421码与二进制的区别
例如:
(28)10=(11100)2=(00101000)8421
二、2421码
2421码是另一种有权码,其4位二进制码从高位至低位的权依
次为2、4、2、1。若一个十进制字符X的2421码为a3a2a1a0,则
该字符的值为
X=2a3+4a2+2a1+1a0
例如,(1101)2421码?=(7)10。
1.2421码与十进制数之间的转换
2421码与十进制数之间的转换同样是按位进行的,例如:
(258)10=()2421码
(1011)2421码=(2185)10
2.注意
#8226;2421码不具备单值性。例如,0101和1011都对应十进制
数字5。为了与十进制字符一一对应,2421码不允许出现0101~
1010的6种状态。
#8226;2421码是一种对9的自补代码。即一个数的2421码只要
自身按位变反,便可得到该数对9的补数的2421码。例如,4对9的
补数是5,将4的2421码0100按位变反,便可得到5的2421码
1011。具有这一特征的BCD码可给运算带来方便,因为直接对BCD
码进行运算时,可利用其对9的补数将减法运算转化为加法运算。
#8226;2421码与二进制数的区别。
三、余3码
余3码是由8421码加上0011形成的一种无权码,由于它的每
个字符编码比相应8421码多3,故称为余3码。例如,十进制字符5
的余3码等于5的8421码0101加上0011,即为1000。
1.注意
☆余3码有6种状态0000、0001、0010、1101、1110和1111
是不允许出现的。
☆余3码也是一种对9的自补代码,因而可给运算带来方便。
☆将两个余3码表示的十进制数相加时,能正确产生进位信号,
但对“和”必须修正。修正的方法是:如果有进位,则结果加3;
如果无进位,则结果减3。
2.余3码与十进制数之间的转换
余3码与十进制数之间的转换也是按位进行的,值得注意的是每
位十进制数的编码都应余3。例如:
(256)10=()余3码
(1011)余3码=(5668)10
计算机中使用的是二进制数,人们习惯使用的是十进制数,因此,
输入到计算机中的十进制数需要转换成二进制数;数据输出时,应将
二进制数转换成十进制数。为了方便,大多数通用性较强的计算机需
要能直接处理十进制形式表示的数据。为此,在计算机中还设计了一
种中间数字编码形式,它把每一位十进制数用4位二进制编码表示,
称为二进制编码的十进制表示形式,简称BCD码(binarycoded
decimal),又称为二—十进制数。4位二进制数码,可编码组合成16
种不同的状态,而十进制数只有0,1,…,9这十个数码,因此选
择其中的十种状态作BCD码的方案有许多种,如8421BCD码、格雷
码、余3码等,编码方案见表2.1.1。
表2.1.1用二进制编码表示的十进制数
十进制数8421码2421码5211码余3码格雷码
000110000
101000001
201010011
301100010
401110110
510001110
610011010
710101000
810111100
911000100
最常用的BCD码是8421BCD码。8421BCD码选取4位二进制
数的前10个代码分别对应表示十进制数的10个数码,1010~1111
这6个编码未被使用。从表中可以看到这种编码是有权码。四个二
进制位的位权从高向低分别为8,4,2和1,若按权求和,和数就等
于该代码所对应的十进制数。例如,0110=22+21=6。把一个十进
制数变成它的8421BCD码数串,仅对十进制数的每一位单独进行即
可。例如变1986为相应的8421BCD码表示,结果为
0110。反转换过程也类似,例如变0111为十进制数,
结果应为5937。8421BCD码的编码值与字符0到9的ASCII码
的低4位相同,有利于简化输入输出过程中从字符→BCD和从
BCD→字符的转换操作,是实现人机联系时比较好的中间表示。需
要译码时,译码电路也比较简单。8421BCD码的主要缺点是实现加
减运算的规则比较复杂,在某些情况下,需要对运算结果进行修正。
本文发布于:2022-12-08 08:52:00,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/65019.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |