购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

任务1.1
数制与码制

人们在生产和生活中,创造了各种不同的计数方法。采用何种方法计数,是根据人们的需要和方便而定的。由数字符号构成且表示物理量大小的数字和数字组合,称为数码。多位数码中每一位的构成方法,以及从低位到高位的进制规则,称为数制(或计数制),又称进制。在数字电路中,往往用“0”和“1”组成的二进制数码表示数值的大小或者一些特定的信息,这种具有特定意义的二进制数码称为二进制代码,代码的编制过程称为编码。

1.1.1 数制

1.几种常用的数制

我们在日常生活中,习惯于用十进制,但在数字电路及其系统中,常用的是二进制。除此之外,还有八进制、十六进制等数制。

通常,十进制数用( N 10 或( N D 表示,二进制用( N 2 或( N B 表示,八进制用( N 8 或( N O 表示,十六进制用( N 16 或( N H 表示。

(1)十进制(Decimal)

十进制是我们最熟悉的一种数制,它的基数为10,用0、1、2、3、4、5、6、7、8、9共10个数码(或系数),按“逢十进一”的规律计数,例如,9+1=10。

任何一个十进制数都可以写成以10为底的幂的求和式,即其位权展开式为

式中, i 为位数,从整数最低位(个位)依次往高位, i 分别取0、1、…、 n -1共 n 位整数位,从小数最高位(十分位)依次往低位, i 分别取-1、-2、…、 -m m 位小数; a i 为第 i 位的数码;10 i 为第 i 位的权值。

例如,(143.75) 10 = 1 × 10 2 + 4 × 10 1 + 3 × 10 0 + 7 × 10 -1 + 5 × 10 -2

式中的注脚10表示十进制,或者说以10为“基数”;各位数的权为10的幂;1、4、3、7、5称为系数。

(2)二进制(Binary)

数字系统中广泛采用二进制数,这是因为数字电路通常只有两种基本状态,比如电位的高和低、脉冲的有和无、晶体管的导通和截止。二进制中只有0、1两个数字符号,基数为2,计数规律是“逢二进一,借一当二”,例如,1+1=10。

任何一个二进制数都可以表示成以2为底的幂的求和式,即其位权展开式为

例如,(10010) 2 = 1 × 2 4 + 0 × 2 3 + 0 × 2 2 + 1 × 2 1 + 0 × 2 0 = (18) 10

从上例可以看出,5位二进制数(10010) 2 可以表示为十进制数(18) 10 。由于数值越大,二进制的位数就越多,读写不方便,且容易出错。所以,数字系统中还用到八进制和十六进制。

(3)八进制(Octal)

八进制的数码为0、1、2、3、4、5、6、7共8个数码,基数为8。它的计数规则是“逢八进一,借一当八”,例如,7+1=10。

其位权展开式为

例如,(116) 8 = 1 × 8 2 + 1 × 8 1 + 6 × 8 0 = (78) 10

(4)十六进制(Hexadecimal)

十六进制是以16为基数的计数体制,它有0~9、A、B、C、D、E、F共16个数码,其计数规则是“逢十六进一,借一当十六”,例如,F+1=10。

其位权展开式为

例如,(3F) 16 = 3 × 16 1 + 15 × 16 0 = (63) 10

2.数制转换

二进制、八进制、十六进制转换成十进制时,只要将它们按位权展开式展开,将各项相加,便可得到相应进制数对应的十进制数,这里不再赘述。

(1)十进制数转换成非十进制数

把十进制数转换成为非十进制数可用“除基数取余法”。它是将十进制数逐次除以转换数的基数,并依次记下余数,直到商为0。最先得到的余数为转换数的最低位,最后得到的余数为转换数的最高位。

例如,将十进制数157转换为二进制数的步骤如下:

可得(157) 10 =(10011101) 2

(2)二进制数与八进制数之间的转换

1)二进制数转换成八进制数。从低位到高位“三位并一位”,不足三位用0补足,分组后将每三位二进制数组用对应的八进数来代替,再按顺序排列写出对应的八进制数。

例如,(10110001) 2 =(010,110,001) 2 =(261) 8

2)八进制数转换成二进制数。可以概括为“一位拆三位”,并去掉整数部分最高位的0即可。

例如,(315) 8 =(011,001,101) 2 =(11001101) 2

(3)二进制数与十六进制数之间的转换

1)二进制数转换成十六进制数。从低位到高位“四位并一位”,不足四位用0补足,分组后将每四位二进制数组用对应的十六进数来代替,再按顺序排列写出对应的十六进制数。

例如,(10111100010) 2 =(0101,1110,0010) 2 =(5E2) 16

2)十六进制数转换成二进制数。可以概括为“一位拆四位”,并去掉整数部分最高位的0即可。

例如,(8D3C) 16 =(1000,1101,0011,1100) 2 =(1000110100111100) 2

几种进制数的对照表见表1-1。

表1-1 几种进制数的对照表

1.1.2 码制

码制即编码的方式。在数字系统中,用0和1组成的二进制数码不仅可以表示数值的大小,而且还常用来表示数字、文字或符号等特定信息,这种具有特定意义的二进制数码称为二进制代码。二进制代码的编制过程称为“编码”。编码的形式有很多,本节只介绍常用的二-十进制编码(又称为BCD码)和格雷码。

1.常用的BCD码

BCD码是用一个4位二进制代码表示1位十进制数字的编码方法。4位二进制有16种不同的状态组合,从中取出10种组合来表示0~9十个数字,可以有多种组合方式,因此BCD码有许多种,见表1-2。

表1-2 几种常用的BCD码

(1)有权BCD码

1)8421BCD码。从表1-2可以看出,8421BCD码是选取0000~1001这10种状态来表示十进制数0~9的,1010~1111为不用状态。8421BCD码实际上就是用按自然顺序的二进制数来表示对应的十进制数的。因此,这种编码最自然和简单,很容易识别和记忆,与十进制数之间的转换也比较方便。

8421BCD码和一个4位二进制数一样,从高到低的位权值分别是8、4、2、1,故称为8421BCD码。在这种编码中,1010~1111这6种状态是不用的,称为禁用码。用8421BCD码可以十分方便地表示任意一个十进制数。例如,十进制数1314用8421BCD码表示为

(1314) 10 =(0001 0011 0001 0100) 8421BCD

2)5421BCD码。从表1-2可以看出,5421BCD码是选取0000~0100和1000~1100这10种状态来表示十进制数0~9的,0101~0111和1101~1111这6种状态为不用状态。5421BCD码从高到低的位权值分别是5、4、2、1。

可以看出,8421BCD码和5421BCD码都是用位权值来命名的,所有又称为有权码。

(2)无权BCD码(余3码)

余3码选取的是0011~1100这10种状态,与8421BCD码相比,对应相同十进制数均要多3,故称为余3码。要将一位十进制数转换成余3码,只要先将十进制数转换成8421BCD码,然后再加上(0011) 2 即可。可以看出,余3码不是用位权值来命名的,所有又称为无权BCD码。

2.其他常用的编码
(1)格雷码

格雷码又称为循环码。它有一个显著特点,即任意两个相邻的数所对应的代码之间只有一位不同,其余位都相同。这一特点使它在代码的形成和传输时引起的误差比较小。4位循环码的编码表见表1-3。

表1-3 4位循环码的编码表

格雷码和余3码均属于无权BCD码,无权BCD码没有确定的权值,但它们各有特点,在不同的场合可以根据需要选用。

(2)奇偶校验码

信息的正确性对数字系统和计算机系统有着重要的意义,但在信息的存储和传送过程中,常由于某种随机干扰而发生错误。所以希望在传送代码时能进行某种校验以判断是否发生了错误,甚至能自动纠正错误。

奇偶校验码就是一种具有自动检错的代码。这种代码由两部分组成:一部分是信息位,可以是任意一种二进制代码(如8421BCD码);另一部分是校验位,它仅有一位。常见的奇偶校验码见表1-4。

表1-4 常见的奇偶校验码

从表1-4可以看出校验位数码的编码方式:作为“奇校验”时,使校验位和信息位所组成的每组代码中含有奇数个“1”;作为“偶校验”时,使校验位和信息位所组成的每组代码中含有偶数个“1”。

奇偶校验码常用于代码的传送中对代码接收端的奇偶性进行检查:与发送端的奇偶性一致,则可认为接收的代码正确;否则,接收的代码错误。 ls/f89j4cWBVmKx1MOf1TlgJR4kl9pgTFB6Q09xTn6PmGSMC4G+kKHcF9InyuSgL

点击中间区域
呼出菜单
上一章
目录
下一章
×