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

1.3 常用的数制与码制

1.3.1 数制

表示数值大小的各种计数方法称为计数体制,简称数制。

1. 十进制

十进制数(Decimal number)是人们在日常生活中最常用的一种数制,它有 0、1、2、3、4、5、6、7、8、9 十个数码,基数(Base)为 10。计数规则是逢十进一或借一当十。

每一位数码根据它在数中的位置不同,代表不同的值。在数列中每个位置数符所表示的数值称为“位权”或“权”(Weight)。例如十进制正整数 3658 可写为3658=3×103+6×102+5×101+8×100。

n位十进制数中,第i位所表示的数值就是处在第i位的数字乘上 10i——基数的i次幂。第 0 位的位权是 100,第 1 位的位权是 101,第 2 位的位权是 102,第 3 位的位权是 103。

由此可以得出十进制数的一般表达式。如果一个十进制数包含n位整数和m位小数,则:

N 10 = a n-1 ×10 n-1 + a n-2 ×10 n-2 +…+ a 1 ×10 1 + a 0 ×10 0 + a -1 ×10 -1 + a - 2 ×10 -2 +…+ a -m ×10 –m

用数学式表示的通式为:

式中的下标 10 表示N是十进制数,也可以用字母D来代替,如(35)10,或(35)D。

2. 二进制

二进制数(Binary number)只有 0、1 两个数码,基数为 2,计数规则是逢二进一或借一当二。其位权为 2 的整数幂,按权展开式的规律与十进制相同。如:

(1101)2=1×23+1×22+0×21+1×20

数学式表示的通式为:

括号的下标 2 表示N是二进制数,也可以用字母B来代替,如(11000)2 或(11000)B。

由于二进制数只有 0 和 1 两个数码,便于电路实现,且二进制的基本运算操作方便,因此在数字系统中被广泛使用。

3. 八进制和十六进制

二进制数在使用时位数通常较多,不便于书写和记忆,在数字系统中常采用八进制和十六进制来表示二进制数。

(1)八进制数(Octal number)有 0、1、2、3、4、5、6、7 八个数码,基数为 8,各位的位权是 8 的整数幂,其计数规划是逢八进一或借一当八,用数学式表示的通式为:

数学式表示的通式为:

括号的下标 8 表示N是八进制数,也可以用字母O来代替,如:

(1234)8=(1234)O=1×83+2×82+3×81+4×80

(2)十六进制数(hexadecimal number)有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码,符号A~F分别代表十进制的 10~15,基数为 16,其计数规则是逢。

其计数规则是逢十六进一或借一当十六,用数学式表示的通式为:

括号的下标 16 表示N是十六进制数,也可以用字母H来代替,如:

(27BC)16=(27BC)H=2×163+7×162+B×161+C×160

1.3.2 进制之间的转换

一、(二、八、十六进制)转(十进制)
1. 二进制转十进制

方法:二进制数从低位到高位(即从右往左)计算,第 0 位的权值是 2 的 0 次方,第 1位的权值是 2 的 1 次方,第 2 位的权值是 2 的 2 次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

例:将二进制的(101011)B转换为十进制的步骤如下:

(1)第 0 位 1 x 2^0 = 1;

(2)第 1 位 1 x 2^1 = 2;

(3)第 2 位 0 x 2^2 = 0;

(4)第 3 位 1 x 2^3 = 8;

(5)第 4 位 0 x 2^4 = 0;

(6)第 5 位 1 x 2^5 = 32;

(7)读数,把结果值相加,1+2+0+8+0+32=43,即(101011)B=(43)D。

2. 八进制转十进制

方法:八进制数从低位到高位(即从右往左)计算,第 0 位的权值是 8 的 0 次方,第 1位的权值是 8 的 1 次方,第 2 位的权值是 8 的 2 次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

八进制就是逢 8 进 1,八进制数采用 0~7 这八个数来表达一个数。

例:将八进制的(53)O转换为十进制的步骤如下:

(1)第 0 位 3 x 8^0 = 3;

(2)第 1 位 5 x 8^1 = 40;

(3)读数,把结果值相加,3+40=43,即(53)O=(43)D。

3. 十六进制转十进制

方法:十六进制数从低位到高位(即从右往左)计算,第 0 位的权值是 16 的 0 次方,第 1 位的权值是 16 的 1 次方,第 2 位的权值是 16 的 2 次方,依次递增下去,把最后的结果相加的值就是十进制的值了。

十六进制就是逢 16 进 1,十六进制的 16 个数为 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

例:将十六进制的(2B)H转换为十进制的步骤如下:

(1)第 0 位B x 16^0 = 11;

(2)第 1 位 2 x 16^1 = 32;

(3)读数,把结果值相加,11+32=43,即(2B)H=(43)D。

二、(十进制)转(二、八、十六进制)
1.十进制转二进制

方法:除 2 取余法,即每次将整数部分除以 2,余数为该位权上的数,而商继续除以 2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为 0 为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。

例:将十进制的(43)D转换为二进制的步骤如下,如图 1.4 所示。

(1)将商 43 除以 2,商 21 余数为 1;

(2)将商 21 除以 2,商 10 余数为 1;

(3)将商 10 除以 2,商 5 余数为 0;

(4)将商 5 除以 2,商 2 余数为 1;

(5)将商 2 除以 2,商 1 余数为 0;

(6)将商 1 除以 2,商 0 余数为 1;

(7)读数,因为最后一位是经过多次除以 2 才得到的,因此它是最高位,读数字从最后的余数向前读,101011,即(43)D=(101011)B。

图 1.4 十进制转二进制

2.十进制转八进制

方法:除 8 取余法,即每次将整数部分除以 8,余数为该位权上的数,而商继续除以 8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为 0 为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。

例:将十进制的(796)D转换为八进制的步骤如下,如图 1.5 所示。

(1)将商 796 除以 8,商 99 余数为 4;

(2)将商 99 除以 8,商 12 余数为 3;

(3)将商 12 除以 8,商 1 余数为 4;

(4)将商 1 除以 8,商 0 余数为 1;

(5)读数,因为最后一位是经过多次除以 8 才得到的,因此它是最高位,读数字从最后的余数向前读,1434,即(796)D=(1434)O。

图 1.5 十进制转八进制

3.十进制转十六进制

方法:除 16 取余法,即每次将整数部分除以 16,余数为该位权上的数,而商继续除以16,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为 0 为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。

例:将十进制的(796)D转换为十六进制的步骤如下,如图 1.7 所示。

(1)将商 796 除以 16,商 49 余数为 12,对应十六进制的C;

(2)将商 49 除以 16,商 3 余数为 1;

(3)将商 3 除以 16,商 0 余数为 3;

(4)读数,因为最后一位是经过多次除以 16 才得到的,因此它是最高位,读数字从最后的余数向前读,31C,即(796)D=(31C)H。

图 1.6 十进制转十六进制

三、(二进制)与(八、十六进制)转换
1. 二进制转八进制

方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添 0,凑足三位。

例:将二进制的(11010111.0100111)B转换为八进制的步骤如下,如图 1.7 所示。

(1)小数点前 111 = 7;

(2)010 = 2;

(3)11 补全为 011,011 = 3;

(4)小数点后 010 = 2;

(5)011 = 3;

(6)1 补全为 100,100 = 4;

(7)读数,读数从高位到低位,即(11010111.0100111)B=(327.234)O。

图 1.7 二进制转八进制

2.八进制转二进制

方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。

二进制与八进制对照如表 1.1 所示。

表 1.1 二进制与八进制对照

例:将八进制的(327)O转换为二进制的步骤如下,如图 1.8 所示。

(1)3 = 011;

(2)2 = 010;

(3)7 = 111;

(4)读数,读数从高位到低位,011010111,即(327)O=(11010111)B。

图 1.8 八进制转二进制

3.二进制转十六进制

方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添 0,凑足四位。

例:将二进制的(11010111)B转换为十六进制的步骤如下,如图 1.9 所示。

(1)0111 = 7;

(2)1101 = D;

(3)读数,读数从高位到低位,即(11010111)B=(D7)H。

图 1.9 二进制转十六进制

4.十六进制转二进制

方法:取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。

例:将十六进制的(D7)H转换为二进制的步骤如下,如图 1.10 所示。

(1)D = 1101;

(2)7 = 0111;

(3)读数,读数从高位到低位,即(D7)H=(11010111)B。

图 1.10 十六进制转二进制

四、八与十六进制转换
1.八进制转十六进制

方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。

例:将八进制的(327)O转换为十六进制的步骤如下,如图 1.11 所示。

(1)3 = 011;

(2)2 = 010;

(3)7 = 111;

(4)0111 = 7;

(5)1101 = D;

(6)读数,读数从高位到低位,D7,即(327)O=(D7)H。

图 1.11 八进制转十六进制

2.十六进制转八进制

方法:将十六进制转换为二进制,然后再将二进制转换为八进制,小数点位置不变。

例:将十六进制的(D7)H转换为八进制的步骤如下,如图 1.12 所示。

(1)7 = 0111;

(2)D = 1101;

(3)0111 = 7;

(4)010 = 2;

(5)011 = 3;

(6)读数,读数从高位到低位,327,即(D7)H=(327)O。

图 1.12 十六进制转八进制

1.3.3 码制

在数字系统中,由 0 和 1 组成的二进制数码不仅可以表示数值的大小,而且还可以表示数值的信息。这种具有特定含义的数码称为二进制代码。编码是给二进制数组定义特定含义的过程,例如用二进制数来描述电梯动作,可以用二进制数D=D1D0 来表示,D=00表示停止,D=01 表示上升,D=10 表示下降。这些关系的定义可以有多种方法,一旦定义后,D的不同值就代表了不同的含义。在日常生活中编码的种类很多,如运动员的编号、学生的学号、住房门牌号等。

由于十进制数码(0~9)不能在数字电路中运行,所以需要转换为二进制数。常用 4 位二进制数进行编码来表示 1 位十进制数。这种用二进制代码表示十进制数的方法称为二—十进制编码,简称BCD码(Binary Coded Decimal system)。

由于 4 位二进制代码可以有 16 种不同的组合形式,用来表示 0~9 十个数字,只用到其中 10 种组合,因而编码的方式很多,其中一些比较常用,如 8421 码、5421 码、2421码、余 3 码等。常用的BCD编码见表 1.8。

表 1.8 常用的BCD编码

1. 8421 码

这种编码每一位的权值是固定的,属于有权码,它和二进制数各位的权值一样,从高到低依次为 8、4、2、1,故称为 8421 码。每个代码的各位数值之和就是它所表示的十进制数,由于其便于记忆,因而应用较广。

2. 5421 码和 2421 码

这两种编码也是有权码,由高到低权值依次为 5、4、2、1 和 2、4、2、1。在 2421 码中,0 和 9,1 和 8,2 和 7,3 和 6,4 和 5,两两之间互为反码,将其中一个数的各位代码取反,便可以得到另一个数的代码。

3. 余 3 码

这种代码所组成的 4 位二进制数恰好比它表示的十进制数多 3,因此称为余 3 码。余 3码不能由各位二进制的权来决定其代表的十进制数,故属于无权码。在余 3 码中,0 和9,1 和 8,2 和 7,3 和 6,4 和 5 也互为反码。

4. 格雷码

又称反射循环码,它是无权码。格雷码的特点是任何两个相邻数的代码只有一位不同。计数电路按格雷码计数时,每次状态更新仅有一位代码变化,减少了出错的可能性。

另外,为了提高数字电路传递代码的可靠性,还采用其他一些编码方法。常用的有余 3循环码、步进码、奇偶校验码等。 GIZb9kZktGtrqDUmVZXAc405qsII3WUjumpv1iscuJgvWWAiRDKjV2z0RLKCFF1e

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