数制与编码.docx
《数制与编码.docx》由会员分享,可在线阅读,更多相关《数制与编码.docx(10页珍藏版)》请在冰点文库上搜索。
数制与编码
这一章主要讲述的内容是在数字设备中进行算术运算的基本知识--数制和一些常用的编码。
1、1进位计数制
一:
进位计数制
它的概念描述为:
把数划分为不同的位数,逐位累加,加到一定数量之后,再从零开始,同时向高位进位
进位计数制有三个要素:
数符、进位规律和进位基数。
什麽是进位基数呢?
即计数制中每个数位所使用的数码符号的总数,它又被称为进位模数。
我们经常把数用每位权值与该位的数码相乘展开。
当某位的数码为“1”时所表征的数值即该位的权值。
例1:
我们把十六进制数N=(1FA3.B3)H按权展开式子为?
N=1*163+15*162+10*161+3*160+11*16-1+3*16-2
二:
常用的进位计数制
我们用进位计数制的三要素来描述一下二进制、八进制、十进制和十六进制。
如下表所示:
常用进制
英文表示符号
数码符号
进位规律
进位基数
二进制
B
0、1
逢二进一
2
八进制
O
0、1、2、3、4、5、6、7
逢八进一
8
十进制
D
0、1、2、3、4、5、6、7、8、9
逢十进一
10
十六进制
H
0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
逢十六进一
16
1、2数制转换
一:
其它进制转换为十进制
方法是:
将其它进制按权位展开,然后各项相加,就得到相应的十进制数。
例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:
N=(68.125)D=(?
)O
整数部分 小数部分
(68.125)D=(104.1)O
三:
二进制与八进制、十六进制的相互转换
二进制转换为八进制、十六进制:
它们之间满足23和24的关系,因此把要转换的二进制从低位到高位每3位或4位一组,高位不足时在有效位前面添“0”,然后把每组二进制数转换成八进制或十六进制即可
八进制、十六进制转换为二进制时,把上面的过程逆过来即可。
例3:
N=(C1B)H=(?
)B
(C1B)H=1100/0001/1011=(110000011011)B
1、3二进制数的算术运算
一:
二进制的四则运算
二进制也可以进行四则运算,它的运算规则如下所示:
加运算
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、4数的原码、反码及补码
一:
数的表示形式
在生活中表示数的时候一般都是把正数前面加一个“+”,负数前面加一个“-”,但是在数字设备中,机器是不认识这些的,我们就把“+”用“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
二:
原码、反码及补码的算术运算
因为这三种数码表示法的形成规则不同,所以算术运算方法也不相同。
原码:
与我们的日常中算术运算相同。
反码:
先转换为反码形式,再进行加减运算。
它的减法可以按A反+[-B]反的形式进行.
补码:
先转换为补码形式,再进行加减运算,其减法可以按A补+[-B]补进行.
三:
溢出及补码运算中溢出的判断
溢出可以描述为运算结果大于数字设备的表示范围。
这种现象应当作故障处理。
判断溢出是根据最高位的进位来判断的。
1、5编码
一:
二——十进制(BCD)码
用二进制码表示的十进制数,就称为BCD码。
它具有二进制的形式,还具有十进制的特点它可作为人们与数字系统的联系的一种间表示。
BCD码分为有权和无权编码。
(1)有权BCD码:
每一位十进制数符均用一组四位二进制码来表示,而且二进制码的每一位都有固定权值.下面我们用表列出几种常见的编码:
十进制数
常见的编码
8421
5421
2421
631-1
余3码
7321
0
0000
0000
0000
0000
0011
0000
1
0001
0001
0001
0010
0100
0001
2
0010
0010
1000
0101
0101
0010
3
0011
0011
1001
0100
0110
0011
6
0110
1001
1100
1000
1001
0111
8
1000
1011
1110
1101
1011
1001
9
1001
1100
1111
1100
1100
1010
(2)无权BCD码:
二进制码中每一位都没有固定的权值。
二:
奇偶校验码
在数据的存取、运算和传送过程中,难免会发生错误,把“1”错成“0”或把“0”错成“1”。
奇偶校验码是一种能检验这种错误的代码。
它分为两部分;信息位和奇偶校验位。
有奇数个“1”称为奇校验,有偶数个“1”则称为偶校验。
这个问题先介绍常见的十进制数,然后介绍二进制、十六进制,再介绍各进制数的相互转换,最后讲述十进制的二进制编码形式。
一、十进制数:
按照进位方式进行计数的制度称进位计数制。
进位计数制中有两个基本要素:
基数和权值。
十进制数的基数是10(0~9),权值是10i(i是数字所处位置的序号)。
特点是逢10进1。
例:
(567.8)10=5×102+6×101+7×100+8×10-1
二、二进制数:
计算机内部使用的数值符号只有两个:
0和1。
外界的各种信息(数字、符号、图像)到了计算机内部都由0、1两个数字组成。
二进制数的基数是2,权值是2i,特点是逢2进1。
例:
(101101.1)2=1×25+0×24+1×23+1×22+0×21+1×20+1×2-1
=32+8+4+1+0.5=45.5
三、十六进制数:
二进制数的缺点是位数多,不易书写和记忆,为此我们常采取十六进制数.
十六进制数的基数是16(0~9,A~F),位权是16i。
特点是逢十六进一。
例:
(2B.A)16=2×16+11×1+10/16=(43.625)10
4B7+84C=(D03)16
四、数制转换:
1.任意R进制数转换成十进制数:
只需将其按权展开的多项式求和。
例:
(11011.01)2=1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2=(27.25)10
(FC)16=15×161+12×160=(252)10
2.十进制数转换成二进制数:
分为整数部分和小数部分。
整数部分采取“除基取余法”:
将要转换的十进制整数除以2,取余数作为二进制整数的最低位K0,将商继续除以2,再取商的余数作为次低位K1,这样不断除,直到商为0,最后的余数作为二进制整数的最高位Kn。
举例:
小数部分采用“乘基取整”法:
将要转换的十进制小数乘以2,取积的整数部分作为二进制小数的最高位K-1,继续将积的小数部分乘以2,再取积的的整数部分作为二进制小数次高位K-2,……这样继续相乘,直到积的小数部分为0或达到所需精度为止,最后一位积的整数部分作为二进制小数最低位的系数K-m,这些系数的排列:
0、K-1、K-2……K-m,便构成了对应的二进制数。
举例:
对于既有整数部分,又有小数部分的十进制数,可按上述方法分别转换然后组合在一起。
例:
将十进制数(43.6875)10转换成对应的二进制数。
解:
由以上两例得 (43)10=(101011)2
(0.6875)10=(0.1011)2
所以 (43.6875)10=(101011.1011)2
3.二进制数与十六进制数的相互转换:
十六进制数与二进制数之间存在简单的转换关系,每一位十六进数对应4位二进制数。
显示
二进制数向十六进制数转换,只要以小数点为界,分别向左、向右4位一组,每组对应一位十六进制数,可得到对应的十六进制数,两头不足4位时,用0补足。
举例
要将十六进制数转换成二进制数,只需将一位十六进制数转换成对应4位二进制数。
举例
五、BCD码(Binary Coded Decimals):
在计算机中,经常要将十进制数用二进制编码来表示,这就是BCD码。
它表面上具有二进制数的形式,又具有十进制数的特点。
一般BCD码都以4位二进制数来表示1位十进制数。
常用的BCD码有8421码、2421码、余3码,编码如下表所示。
显示表
1.8421BCD码
是一种有权码,即每位二进制数都有固定的权,每个BCD码从高到低分别是8、4、2、1,它是一种最自然、最简单的BCD码。
注意:
举例
2.2421BCD码
是一种有权码,每个BCD码中从高到低分别是2、4、2、1,2421BCD码的编码方案不是唯一的。
例:
(110001000010)2421BCD=(642)D
3.余3BCD码:
是无权码。
每一个余3BCD码都比8421BCD码的编码多3。
例:
(010001011000)余3码=(125)D
六、可靠性编码:
代码在形成和传输过程中,因为外界干扰而发生错误。
为了尽可能减少错误的发生,或者在发生错误后能及时发现并矫正,在实际中采取可靠性编码技术,常用的有格雷码和奇偶校验码。
1.格雷码:
(又称循环码)
特点:
任意两个相邻的代码中仅有一位二进制数不同,这样在数码递增或递减过程中,只有一位发生变化,不会出现中间代码,减少了出错的可能性。
举例
2.奇偶校验码:
特点:
利用奇偶校验码可以发现代码在传输过程中发生的一位出错(0→1或1→0)。
奇偶校验码由信息位和校验位两部分组成,信息位是要传输的信息本身,校验位是为了检查错误而添加在信息位后的冗余位。
奇偶校验码分奇校验和偶校验两种,它们产生校验位的规则是不同的。
对于奇校验,增加一位校验位后使得信息位和校验位中“1”的个数总和是奇数;反之若“1”的个数总和是偶数则为偶校验。
以“9”为例:
信息在发送时如采用奇校验,在接收时对信息位和校验位中“1”的个数进行判断,如仍是奇数,说明信息传送未出错,如是偶数,则信息传送出现差错。