|
|
|
|
当前位置: 技术文章首页 >> 制作与应用 >> 第一章 数制与编码(Number System and Codes) |
第一章 数制与编码(Number System and Codes)
1970-01-01 08:00:00 作者: 本站 来源: 本站整理 浏览次数: 196 文字大小:【 大】【 中】【 小】
|
一、数字的进制
1、十进制数(Decimal Number) |
|
十进制数是日常生活中使用最广的计数制。组成十进制数的符号有0,1,2,3,4,5,6,7,8,9等共十个符号,我们称这些符号为数码。 在十进制中,每一位有0~9共十个数码,所以计数的基数为10。超过9就必须用多位数来表示。十进制数的运算遵循加法时:“逢十进一”,减法时:“借一当十”。 十进制数中,数码的位置不同,所表示的值就不相同。如:

式中,每个对应的数码有一个系数1000,100,10,1与之相对应,这个系数就叫做权或位权。 对于位一十进制数可表示为:
N10=an-1×10n-1+an-2×10n-2+…+a1×101+a0×100+a-1×10-1+a-2×10-2+…+a-m×10-m = ai×10i |
式中:ai 为0~9中的位一数码;10为进制的基数;10的i次为第i位的权;m,n为正整数,n为整数部分的位数,m为小数部分的位数。 |
| 2、二进制数(Binary Number) |
与十进制相似,二进制数也遵循两个规则: 仅有两个不同的数码,即0,1; 进/借位规则为:逢二进一,借一当二。 对于任意一个二进制数可表示为:
N2= bi×2i | 由于二进制数仅0,1两个数码,所以其运算规则比较简单,下现列出了二进制数进行加法和乘法的规则:
|
加法 |
乘法 |
|
0+0=0 |
0×0=0 |
|
0+1=1 |
0×1=0 |
|
0+1=1 |
1×0=0 |
|
0+1=10 |
1×1=1 | 上表中式1+1=10中的红色为进位位。 |
| 3、十六进制(Hexadecimal Number) |
|
二进制数在计算机系统中处理很方便,但当位数较多时,比较难记忆及书写,为了减小位数,通常将二进制数用十六进制表示。 十六进制是计算机系统中除二进制数之外使用较多的进制,其遵循的两个规则为: 其有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F等共十六个数码,其分别对应于十进制数的0~15; 十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。 十六进制数同二进制数及十进制数一样,也可以写成展开式的形式。
在数制使用时,常将各种数制用简码来表示:如十进制数用D表示或省略;二进制用B来表示;十六进制数用H来表示。 如:十制数123表示为:123D或者123;二进制数1011表示为:1011B;十六进制数3A4表示为:3A4H。 在计算机中除上面讲到的二进制、十进制、十六进制外,常常还会讲到八进制数,这里就不讨论了。 下表列出了十进制0~16对应的二进制数和十六进制数。
|
十进制数 |
二进制数 |
十六进制数 |
|
0 |
0000 |
0 |
|
1 |
0001 |
1 |
|
2 |
0010 |
2 |
|
3 |
0011 |
3 |
|
4 |
0100 |
4 |
|
5 |
0101 |
5 |
|
6 |
0110 |
6 |
|
7 |
0111 |
7 |
|
8 |
1000 |
8 |
|
9 |
1001 |
9 |
|
10 |
1010 |
A |
|
11 |
1011 |
B |
|
12 |
1100 |
C |
|
13 |
1101 |
D |
|
14 |
1110 |
E |
|
15 |
1111 |
F |
|
16 |
10000 |
10 |
|
二、各种进制相互转换 |
|
1、其它进制转换为十进制 方法是:将其它进制按权位展开,然后各项相加,就得到相应的十进制数。 |
|
例1: N=(10110.101)B=(?)D 按权展开N=1*24+0*23+1*22+1*21+0*20+1*2-1+0*2-2+1*2-3 =16+4+2+0.5+0.125 =(22.625)D 2、 将十进制转换成其它进制 方法是: 它是分两部分进行的即整数部分和小数部分。 |
|
整数部分:(基数除法) 把我们要转换的数除以新的进制的基数,把余数作为新进制的最低位; 把上一次得的商在除以新的进制基数,把余数作为新进制的次低位; 继续上一步,直到最后的商为零,这时的余数就是新进制的最高位. 小数部分: (基数乘法) 把要转换数的小数部分乘以新进制的基数,把得到的整数部分作为新进制小数部分的最高位 把上一步得的小数部分再乘以新进制的基数,把整数部分作为新进制小数部分的次高位; 继续上一步,直到小数部分变成零为止。或者达到预定的要求也可以。 |
| 例2 : N=(68.125)D=(?)O |
整数部分 小数部分
 |
(68.125)D=(104.1)O
|
|
3、二进制与八进制、十六进制的相互转换
二进制转换为八进制、十六进制:它们之间满足23和24的关系,因此把要转换的二进制从低位到高位每3位或4位一组,高位不足时在有效位前面添“0”,然后把每组二进制数转换成八进制或十六进制即可 八进制、十六进制转换为二进制时,把上面的过程逆过来即可。 例3:N=(C1B)H=(?)B (C1B)H=1100/0001/1011=(110000011011)B | | |
| 三、二进制的四则运算 |
| 二进制也可以进行四则运算,它的运算规则如下所示: |
| 加运算
| 0+0=0,0+1=1,1+0=1,1+1=10 逢2进1 |
| 减运算
| 1-1=0,1-0=1,0-0=1,0-1=1(向高位借1当2) |
| 乘运算
| 0*0=0,0*1=0,1*0=0,1*1=1 |
| 除运算
| 二进制只有两个数(0,1),因此它的商是1或0. | |
| 例1:求(1011101)B与(0010011)B之和 |
例2: 求(1101)B与(0101)B的乘积 |
|

|

| |
| 通过例(1)我们再来介绍两个概念:半加和全加。 |
|
半加是最低位的加数和被加数相加时,不考虑低位向本位进位。 全加是加数和被加数相加时,我们还要考虑低位向本位的进位。 | |
| 四、数的原码、反码及补码 |
1、数的表示形式 在生活中表示数的时候一般都是把正数前面加一个“+”,负数前面加一个“-”,但是在数字设备中,机器是不认识这些的,我们就把“+”用“0”表示,“-”用“1”表示。原码、反码和补码。这三种形式是怎样表示的呢?如下所示: |
|
|
真值 |
原码 |
反码 |
补码 |
例1:求+12和-12八位原码、反码、补码形式 它们的原码分别为[+12]=00001100[-12]=100011 它们的反码分别为[+12]*=00001100 [-12]*=(28-1)+(-1100)=11110011 它们的补码分别为[+12]**=00001100 [-12]**=28+(-1100)=11110100 |
|
正数 |
+X |
0X |
0X |
0X |
|
负数 |
-X |
1X |
(2n-1)+X |
2n+X | |
|
2、原码、反码及补码的算术运算 因为这三种数码表示法的形成规则不同,所以算术运算方法也不相同。 |
|
原码:与我们的日常中算术运算相同。 反码:先转换为反码形式,再进行加减运算。它的减法可以按A反+[-B]反的形式进行. 补码:先转换为补码形式,再进行加减运算,其减法可以按A补+[-B]补进行. |
|
3、溢出及补码运算中溢出的判断 溢出可以描述为运算结果大于数字设备的表示范围。这种现象应当作故障处理。 判断溢出是根据最高位的进位来判断的。 |
| 五、常用编码 |
|
1、BCD编码
在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制代码称为二-十进制代码(Binary Coded Decimal),简称为BCD码。它具有二进制数的形式以满足数字系统的要求,又具有十进制的特点(只有十种有效状态)。在某些情况下,计算机也可以对这种形式的数直接进行运算。常见的BCD码表示有以下几种。
这是一种使用最广的BCD码,是一种有权码,其各位的权分别是(从最有效高位开始到最低有效位)8,4,2,1。 例 写出十进数563.97D对应的8421BCD码。 563.97D=0101 0110 0011 . 1001 01118421BCD 例 写出8421BCD码1101001.010118421BCD对应的十进制数。 1101001.010118421BCD=0110 1001 . 0101 10008421BCD=69.58D 在使用8421BCD码时一定要注意其有效的编码仅十个,即:0000~1001。四位二进制数的其余六个编码1010,1011,1100,1101,1110,1111不是有效编码。
2421BCD码也是一种有权码,其从高位到低位的权分别为2,4,2,1,其也可以用四位二进制数来表示一位十进制数。其编码规则如下表。
2、余3码 余3码也是一种BCD码,但它是无权码,但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故正须作一般性了解,具体的编码如下表。
常见BCD编码表
| 十进制数 |
8421BCD码 |
2421BCD码 |
余3码 |
| 0 |
0000 |
0000 |
0011 |
| 1 |
0001 |
0001 |
0100 |
| 2 |
0010 |
0010 |
0101 |
| 3 |
0011 |
0011 |
0110 |
| 4 |
0100 |
0100 |
0111 |
| 5 |
0101 |
1011 |
1000 |
| 6 |
0110 |
1100 |
1001 |
| 7 |
0111 |
1101 |
1010 |
| 8 |
1000 |
1110 |
1011 |
| 9 |
1001 |
1111 |
1100 |
| 10 |
0001,0000 |
0001,0000 |
0100,0011 |
3、格雷反射码(循环码)
格雷码是一种无权码,其特点是任意两个相邻的码之间只有一个数不同。另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。
| 十进制数 |
二进制数 |
格雷码 |
十进制数 |
二进制数 |
格雷码 |
| 0 |
0000 |
0000 |
8 |
1000 |
1100 |
| 1 |
0001 |
0001 |
9 |
1001 |
1101 |
| 2 |
0010 |
0011 |
10 |
1010 |
1111 |
| 3 |
0011 |
0010 |
11 |
1011 |
1110 |
| 4 |
0100 |
0110 |
12 |
1100 |
1010 |
| 5 |
0101 |
0111 |
13 |
1101 |
1011 |
| 6 |
0110 |
0101 |
14 |
1110 |
1001 |
| 7 |
0111 |
0100 |
15 |
1111 |
1000 | |
| 4、奇偶校验码 |
|
在数据的存取、运算和传送过程中,难免会发生错误,把“1”错成“0”或把“0”错成“1”。奇偶校验码是一种能检验这种错误的代码。它分为两部分;信息位和奇偶校验位。 有奇数个“1”称为奇校验,有偶数个“1”则称为偶校验。 > | | | |
责任编辑:
启蒙电子:http://www.51c51.net
启蒙电子网:http://www.atc51.com
启蒙电子论坛
|