码制
码制是编码的规则,编码的规则是人们根据需要为达到某种目的而制定的。在数字电路系统中,用二进制数形式书写的代码来表示各种符号、文字等信息,这样的过程称为编码,这样得到的编码方案及其采取的规则统称码制。数字系统可以采用的码制是多种多样的,本节介绍一些常用的码制。
1.常用BCD码
BCD码是二-十进制码的简称(Binary Coded Decimals),它是用四位二进制代码来表示一位十进制数,四位二进制数共有16个码组(0000~1111),十进制数从四位二进制数中选10个码组,这10个四位二进制码组叫许用码;其余的6个码组平时不允许使用,称为禁用码或伪码。
1)8421 BCD码
每位十进制用四位二进制代码表示,并从高位到低位8、4、2、1即23、22、21、20属于有权码。不允许出现1010~1111这六个代码,十进制没有相应数码,称作伪码。
例如:
2)5421 BCD码
每位十进制用四位二进制代码表示,并从高位到低位5、4、2、1,属于有权码。不允许出现0101、0110、0111、1101、1110、1111这六个代码,十进制没有相应数码,称作伪码。
例如:
3)余3 BCD码
余3码的所有码元组合均为对应的8421 BCD码加3(0011),因此称余3 BCD码,属于无权码。不允许出现0000、0001、0010、1101、1110、1111这六个代码,十进制没有相应数码,称作伪码。
特别提示
BCD码不是二进制数,而是用二进制数的形式表示的十进制数。“四位二进制数”和由“四位二进制代码构成的1组BCD码”,这两者概念完全不同,前者是二进制数,后者是用代码表示的十进制数。
表1-3所示为三种常用的BCD码。需要注意的是,三种BCD码在表1-3中各出现10个代码是许用码,分别还各有6个代码未出现,是禁用码,实际编码中不允许应用。
表1-3 三种常用的BCD码
BCD码之间的转换
2.各种BCD码间的转换
不同类型的BCD码可以进行相互转换,如8421 BCD码可以转换成5421 BCD码或余3 BCD码,而5421 BCD码、余3 BCD码也可转换成8421 BCD码,或它们间相互转换。
例如:将十进制数192.36分别转换成8421 BCD码、5421 BCD码、余3 BCD码。(www.xing528.com)
特别提示
在BCD码间的转换过程中,一般可先转换成十进制数中间状态,然后再转换成另一种编码形式。
3.可靠性编码
代码在形成、传输过程中可能会发生错误,为了减少这种错误,出现了一种叫可靠性编码的方法,它使代码本身具有一种特性和能力,在代码形成中不易出错,或者这种代码在出错时容易被发现,甚至能查出出错位置并加以纠正。
(1)格雷码(Gray码)。格雷码不是有权码,形式有多种,但它们有一个共同的特点,就是任意两个相邻的数,它们的格雷码表示形式中仅有一位不同。
与普通的BCD码相比,格雷码最大的优点是在代码转换中,如果它顺序变化,则每一次转换只会有一位代码改变。表1-4所示为格雷码与8421 BCD码对照表。例如,十进制数7变成8,如表1-4所列的8421 BCD码,则意味着0111变成1000,四位要同时变化。
表1-4 格雷码与8421 BCD码对照表
格雷码和奇偶校验码
对于一个电路系统而言,四位代码就是4路信号,转换过程中,并不能保证“0111”4路信号同时变化成“1000”,这就意味着转换中有可能出现0110、0100、0000等错误码的可能,这些错误码出现虽然短暂,但有时却是不允许的,它将形成干扰,影响数字电路正常工作,这些错误码在信号波形上被称为“过渡噪声”。而格雷码是从编码形式上杜绝了这种错误出现的可能。
(2)奇偶校验码。二进制信息在传送时,可能会发生错误,即有的1错成0或有的0错成1,奇偶校验码就是一种常用的具有校错能力的可靠性代码。表1-5所示为8421奇校验码和8421偶校验码。
表1-5 8421奇校验码和8421偶校验码
奇偶校验码分奇校验码和偶校验码两种,均由信息位和校验位两部分组成。信息位就是需要传送的信息本身,可以是位数不限的二进制形式的数据代码,如并行传送8421 BCD码,信息位就是表1-5中信息位所示四位。校验位仅有一位,放在信息位的前面或后面均可。
所谓“奇校验码”,是指信息位和校验位中,“1”的个数之和为奇数。所谓“偶校验码”,是指信息位和校验位中“1”的个数之和为偶数。奇校验和偶校验在计算机中都获得广泛的应用。
奇偶校验码的生成,指的是按照奇校验码或偶校验码的规定,依据信息位中1的个数,产生校验位具体的取值。
奇偶校验码的检测,指的是接收设备收到具体代码后,计算整个码组中1的个数,看码中1的个数的奇偶是否正确。如果不对,就是错误代码,说明信息传送有错。
按表1-5传送奇校验码,如收到的代码组为0110 1,接收端校验其中“1”的个数为奇数,就认为数据传输中没有出现误码,接收正确。如果收到的代码组为0010 1,校验码组中“1”的个数后发现是偶数,则表示传输中出现了误码。但是,具体是哪一位码元出现了错误,则无法判断。
特别提示
奇偶校验码只能检一位错,且不能纠错。如发生双错(有两位出错),奇偶校验码是查不出来的,但双错的概率要比单错少得多,所以奇偶校验码还是很有效的,在信息传输与检测中应用广泛。
先导案例解决
人类日常生活中最常见的是十进制,而在数字电路系统中广泛采用的是二进制,要实现人机交互,则将十进制数整数部分除2取余,小数部分乘2取整,这样就转换成了机器所能接收的二进制。而“半斤八两”也就是十进制的半斤相当于十六进制的八两。
习题1.3
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。