chap2 信息编码与数据表示-1.ppt_第1页
chap2 信息编码与数据表示-1.ppt_第2页
chap2 信息编码与数据表示-1.ppt_第3页
chap2 信息编码与数据表示-1.ppt_第4页
chap2 信息编码与数据表示-1.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 信息编码与数据表示,教学目标 教学重点 教学过程,教学目标,数据在计算机中的表示方法及编码形式 掌握进位计数制和数制之间的转换 掌握数与字符的表示方法及校验方法,教学重点,进位计数制和数制之间的转换 定点数和浮点数 带符号数的表示方法 字符编码 数据校验码,教学过程,2.1 数值数据的表示 2.2 非数值数据的表示 2.3 校验码 作业,2.1 数值数据的表示,一、进位计数制 二、数据格式 三、定点机器数的表示方法 四、浮点机器数的表示方法,一、进位计数制,1、数制的基本概念 2、数制转换 3、十进制数的编码,1、数制的基本概念,数制的两大要素: 基数R:指在这种进位制中允许使用的基本

2、数码个数。基数为R的数制称为R进制数。 R进制数的主要特点就是逢R进1 。 权Wi:权也称位权,指某一位i上的数码的权重值,即权与数码所处的位置i有关。 Wi Ri。 假设任意数值N用R进制数来表示,形式为: N=(Dm1Dm-2D0 D-1D-2 D-k )R 其中,Di为该进制的基本符号,Di0,R-1,i = -k, -k+1, ,m-1,m;小数点在D0和D-1之间。,1、数制的基本概念,则数值N的实际值为:,例如:R10,即十进制数。它的每一位上的数码Di只能取0,1,2,9;各个数码的权为10i,i指示数码所处的位置,个位i0,十位i1,百位i2,依此类推。 思考:二进制、八进制、

3、十六进制?,1、数制的基本概念,例1:(2345.459)102103 3102 41015100 410-1 510-2 910-3 例2:(11011.011)2124 123 022121 12-0 02-1 12-2 12-3=(27.375)10 例3:(123.67)8182 281 38068-1 78-2=(83.859375)10,拆分数字,2、数制转换,(1)常用的几种数制的对应关系 (2)二、八、十六进制转换为十进制 (3)十进制转换为二、八、十六进制,(1)常用的几种数制的对应关系,可参考P60 表3.1,(2)二、八、十六进制转换为十进制,转换方法:加权求和。 例:(

4、5AC.E6)16= 5162 10161 12160 14161 6162 (1452.8984375)10 十进制(Decimal)、二进制(Binary)、八进制(Octal)、十六进制(Hexdecimal)数分别用D、B、Q、H来标志。 例如:(1011)2(1011)B1011B1011b (123.45)2( 123.45 )D 123.45D 123.45 (2B.D)16=(2B.D)H=(43.8125)10=(53.64)Q,(3)十进制转换为二、八、十六进制,转换方法:可以分为以下两种方法 直接转换:十进制二、八、十六进制 间接转换:十进制二进制 八、十六进制 (a)十

5、进制转化为R进制 (b)二进制转化为八、十六进制,(a)十进制转化为R进制,转换方法 整数部分:除以R取余,先得低位,直到商为0。 小数部分:乘R取整,先得高位,直到积为0或者达到精度要求为止。 例:(123.75)10=( ? )2 (123.75)10=( ? )8,1111011.11,173.6,例4:将(105)10转换成二进制。 2 105 余数结果 2 521最低位 2 260 2 130 2 61 2 30 2 11 01最高位 得出:(105)10=(1101001)2,小数部分的精度要求,当小数部分不能整除为二进制时,则乘以2取整的过程中,积不会为0;或者当小数部分转化为二

6、进制位数很长,这时由精度来决定二进制位数。 例如:(0.35)10( ? )2无法整除 (0.6875)10( ? )2位数太长 若要求精度大于10,则表示“”左右两边的十进制值的差的绝对值10。 则我们只需取4位二进制小数即可满足要求,因为1024。,对小数部分,一般用乘2取整数法,其规则如下: 将十进制数乘以2,所得乘积的整数部分即为对应二进制小数最高位的值,然后对所余的小数部分乘以2,所得乘积的整数部分为次高位的值,如此进行下去,直到乘积的小数部分为0,或结果已满足所需精度要求为止。,例5:将(0.3125)10和(0.3128)10转换成二进制数(要求4位有效位)。 结果 0.3125

7、2 最高位 0 .62502 1 .25002 0 .50002 最低位 1 .0000 得出:(0.3125)10=(0.0101)2 结果 0.31282 最高位 0 62562 1 25122 0 50242 最低位 1 0048 得出:(0.3128)10=(0.0101)2,两个二进制数字相同,为啥?,例6:将(13.3125)10转换成八进制数,第一步:整数部分转换 8 13余数 8 1 5 0 1 (13)10=(15)8 得出: (13.3125)10=(15.24)8 第二步:小数部分转换 0.31258 2 .50008 4.0000 (0.3125)10=(0.24)8,

8、(b)二进制转化为八、十六进制,二进制八进制 以小数点为中心分别向两边分组,每三位一组,写出对应的八进制数字。(不够位数则在两边加0补足3位 ) 二进制十六进制 以小数点为中心分别向两边分组,每四位一组,写出对应的十六进制符号。(不够位数则在两边加0补足4位 ) 例:(1011111.11)2=( ? )8=( ? )16,137.6,5F.C,思考1:八、十六进制如何转化为二进制?,八进制二进制:将每位八进制数展开为3位二进制数,最高位和最低位的0可以略去。 十六进制二进制:将每位十六进制数展开为4位二进制数,最高位和最低位的0可以略去。 例:(765.23)8=( ? )2 例:(765.

9、23)16=( ? )2,111 110 101.010 011,111 0110 0101.0010 0011,思考2:计算机中为什么采用二进制表示数据?,1、具有二值状态的物理器件容易实现。 2、二进制的运算规则简单,硬件实现容易。 3、具有逻辑特性,可代表“真假”、“是非”。,3、十进制数的编码,提出的问题:如何在计算机内使用二进制来表示十进制数据? (1)二十进制码(BCD码) (2)十进制数串的表示方法,(1)二十进制码(BCD码),BCD(Binary Coded Decimal)码:使用二进制来编码十进制数字09。 编码方法:一般使用4位二进制编码来表示1位十进制数字,在16个编

10、码中选用10个来表示数字09。不同的选择构成不同的BCD码 。 分类: 有权码:编码的每一位都有固定的权值,加权求和的值即是表示的十进制数字。如8421码、2421码、5211码、4311码、84 -2-1码等。 无权码:编码的每一位并没有固定的权,主要包括格雷码、余3码等。,(1)二十进制码(BCD码),可参考P63 表3.2和表3.3,几种常见的BCD码,8421码: 特点:4位二进制数位的权从高到低依次是8、4、2、1;8421码实际上就是十进制数字09的二进制编码本身。 是最常用的一种BCD码,在没有特别指出的一般情况下,所提到的BCD码通常就是指8421码。 格雷码: 特点:又叫循环

11、码,它的任何相邻的两个编码(例如2和3、7和8、9和0等)之间只有一位二进制位不同。 优点:是用它构成计数器时,在从一个编码变到下一个编码时,只有一个触发器翻转即可,波形更完美、可靠。 格雷码的编码方案有许多种。 余3码:对应的8421码加上0011构成的。,例7:求(5)10+(8)10=,解:,(5)BCD,=,0101,+,=,1000,1101,(13)10,(8)BCD,0,9,A,F,09,6,+,0110,1,1,0,0,1,0,0,0,当和大于9时,需加6修正,8421码进位问题,余3码加法问题:例8:(28)10+(55)10=(83)10,0 1 0 1 1 0 1 1(2

12、8)10 +) 1 0 0 0 11 0 0 0(55)10 1 1 1 0 0 0 1 1低位向高位产生进位,高位不产生进位。 -) 0 0 1 1 +) 0 0 1 1低位+3,高位-3。 1 0 1 10 1 1 0 余3码运算规则是:当两个余3码相加不产生进位时,应从结果中减去0011;产生进位时,应将进位信号送入高位,本位加0011。,(2)十进制数串的表示方法,字符串形式:用ASCII码来表示十进制数字或符号位,即1个字节存放1位十进制数字或符号位。 压缩的十进制数串形式:用BCD码来表示十进制数字,即1个字节存放2个十进制的数字;符号位放在最低位数字位之后,一般用C(12)表示正

13、号,用D(13)表示负号。 例如 258被表示成25 8CH(两个字节),-34被表示为03 4DH(两个字节)。 共同点:必须给出它在主存中的首地址和位长。优点是位长可变,许多机器中规定该长度从0到31,有的甚至更长。,二、数据格式,计算机中参与运算的数据有两种: 无符号数据( Unsigned ):所有的二进制数据位数均用来表示数值本身,没有正负之分。 带符号数据( Signed):则其二进制数据位,包括符号位和数值位。计算机中的带符号数据又称为机器数。 1、机器数与真值 机器数:把“+”、“-”符号代码化,并保存在计算机中的数据。 真值:是指机器数所真正表示的数值,用数值并冠以“+”、“

14、-”符号的方法来表示。 机器数的编码方法:原码、反码、补码、移码。,二、数据格式,2、小数点的表示方法 在机器数中,小数点及其位置是隐含规定的;有两种隐含方式: 定点数:小数点的位置是固定不变的 浮点数:小数点的位置是浮动的 定点机器数分为定点小数、定点整数两种。 浮点机器数中小数点的位置由阶码规定,因此是浮动的。,二、数据格式,(a) 定点整数格式,(c)浮点数格式,(b)定点小数格式,三、定点机器数的表示方法,定点机器数的小数点的位置是固定不变的,可以分为两种: 定点小数:用于表示纯小数,小数点隐含固定在最高数据位的左边,整数位则用于表示符号位。 定点整数:用于表示纯整数,小数点位置隐含固

15、定在最低位之后,最高位为符号位。 1、原码表示法2、反码表示法 3、补码表示法4、移码表示法,1、原码表示法,(1)表示方法:最高位表示数的符号,其他位表示数值位。 符号位:0正数,1负数。 数值位:与绝对值相同。 对于定点整数: 若X=+X1X2Xn,则X原= 0,X1X2Xn ; 若X=- X1X2Xn ,则X原= 1,X1X2Xn 。 对于定点小数: 若X=+0. X1X2Xn ,则X原= 0.X1X2Xn ; 若X=- 0.X1X2Xn ,则X原= 1.X1X2Xn 。,“,”和“.”只用于助记,在计算机中并无专用部件来表示,1、原码表示法,例1:X=1011,Y1011,则: X原

16、;Y原 ; 例2:X=0.1101,Y- 0.1101,则: X原 ;Y原 ; 例3: X=1011, Y- 0.1101,求X和Y的8位原码机器数。 X原 ;Y原 ; 例4:0原?,0,1011,1,1011,0.1101,1.1101,0,0001011,1. 1101000,1、原码表示法,(2)0 的表示:0 的原码表示有两种形式,即分别按照正数和负数表示。 +0原 000 -0原 100 (3)表示范围:对于n1位原码机器数X,它所能表示的数据范围为: 定点整数:(2n1)X 2n1 定点小数:(12n)X 12n,包括1位符号位,n位数值位,2、反码表示法,(1)表示方法:最高位表

17、示数的符号,其他位表示数值位。 符号位:0正数,1负数。 数值位:正数时,与绝对值相同;负数时,为绝对值取反。 对于定点整数: 若X=+X1X2Xn,则X反 = 0,X1X2Xn ; 若X=- X1X2Xn ,则X反= 1,X1X2Xn 。 对于定点小数: 若X=+0. X1X2Xn ,则X反= 0.X1X2Xn ; 若X=- 0.X1X2Xn ,则X反= 1.X1X2Xn 。,2、反码表示法,例1:X=1011,Y1011,则: X反 ;Y反 ; 例2:X=0.1101,Y- 0.1101,则: X反 ;Y反 ; 例3: X=1011, Y- 0.1101,求X和Y的8位反码机器数。 X反

18、;Y反 ;,0,1011,1,0100,0.1101,1.0010,0,0001011,1. 0010111,当X为正数时,X反=X原;当X为负数时保持X原符号位不变,而将数值部分取反。反码运算是以2-2-n为模,所以,当最高位有进位而丢掉进位(即2)时,要在最低位+1。 例4:X=0.1011, Y=-0.0100,则有: X反=0.1011, Y反=1.1011 X+Y反=X反+Y反=0.1011+1.1011反=10.0110 其中,最高位1丢掉,并要在最低位加1。所以 得X+Y反=0.0111mod(2-2-4)。,2、反码表示法,例5:X=0.1011, Y=-0.1100,则有:

19、X反=0.1011,Y反=1.0011 X+Y反=0.1011+1.0011反=1.1110(其真值为-0.0001) 反码运算在最高位有进位时,要在最低位+1,此时要多进行一次加法运算,增加了复杂性,又影响了速度,因此很少采用。,2、反码表示法,2、反码表示法,(2)0 的表示:0 的反码表示有两种形式,即分别按照正数和负数表示。 +0反 000 -0反 111 (3)表示范围:对于n1位反码机器数X,它所能表示的数据范围为: 定点整数:(2n1)X 2n1 定点小数:(12n)X 12n,包括1位符号位,n位数值位,3、补码表示法,(1)表示方法:最高位为符号位,其他位为数值位。 符号位:

20、0正数,1负数。 数值位:正数时,与绝对值相同;负数时,为绝对值取反后,末位加1。 对于定点整数: 若X=+X1X2Xn,则X补= 0,X1X2Xn ; 若X=- X1X2Xn ,则X补= 1,X1X2Xn 1。 对于定点小数: 若X=+0. X1X2Xn ,则X补= 0.X1X2Xn ; 若X=- 0.X1X2Xn ,则X补= 1.X1X2Xn 0.001。,3、补码表示法,例1:X=1011,Y1011,则: X补 ;Y补 ; 例2:X=0.1101,Y- 0.1101,则: X补 ;Y补 ; 例3: X=1011, Y- 0.1101,求X和Y的8位补码机器数。 X补 ;Y补 ; 例4:

21、0补?,0,1011,1,0101,0.1101,1.0011,0,0001011,1. 0011000,例5:X=+0.1011,则X补=0.1011 X=-0.1011,则X补=2+X=2+(-0.1011)=1.0101 数值零的补码表示形式是唯一的,即: +0补=-0补=0.0000 这可根据补码定义计算如下: 当X=+0.0000时,X补=0.0000。 当X=-0.0000时,X补=2+X=10.0000+0.0000= 10.0000=0.0000,3、补码表示法,例6:设X=0.1010,Y=0.0101,两数均为正数: X+Y补=0.1010+0.0101补=0.1111补=

22、0.1111 X补+Y补=0.1010+0.0101=0.1111 即 X+Y补=X补+Y补=0.1111 例7:设X=0.1010,Y=-0.0101,X为正,Y为负: X+Y补=0.1010+(-0.0101)补=0.0101 X补+Y补=0.1010+-0.0101补 =0.1010+(2-0.0101)=2+0.0101=0.0101 即X+Y补=X补+Y补=0.0101,3、补码表示法,例8:设X=-0.1010,Y=0.0101,X为负,Y为正: X+Y补=-0.1010+0.0101补=-0.0101补=1.1011 X补+Y补=-0.1010补+0.0101补=1.0110+0

23、.0101=1.1011 即X+Y补=X补+Y补=1.1011 例9:设X=-0.1010,Y=-0.0101,X,Y均为负数: X+Y补=-0.1010+(-0.0101)补=-0.1111补=1.0001 X补+Y补=1.0110+1.1011=10+1.0001=1.0001 即:X+Y补=X补+Y补=1.0001,3、补码表示法,在例6例9中,包括了X、Y各为正负数的各种组合,证实了当运算结果不超出机器所能表示的范围时: X+Y补=X补+Y补。 例10:设X=-0.0000, Y=-0.0000 X补+Y补=X+Y补 =(2+0.0000)+(2+0.0000)=4+0.0000=0.

24、0000 说明两个负零相加,最后得正零,再次说明了补码零在机器中的表示形式是唯一的。 例11:设X=-0.1011, Y=-0.0101,则有 X+Y补=X补+Y补 =1.0101+1.1011=11.0000=1.0000,当补码加法运算的结果不超出机器范围时,可得出以下重要结论: (1) 用补码表示的两数进行加法运算,其结果仍为补码。 (2) X+Y补=X补+Y补。 (3) 符号位与数值位一样参与运算。,3、补码表示法,而X+Y的真值=-0.1011+(-0.0101)=-1.0000,为-1。由此说明一个数的补码值的范围在-1和(1-2-n)之间(假设数值部分为n位)。 对于减法运算,因

25、为X-Y补=X+(-Y)补=X补+-Y补,所以计算时,可以先求出-Y的补码,然后再进行加法运算,这样在用逻辑电路实现加减法运算时,可以只考虑用加法电路,而不必设置减法电路。 图3.1为实现加法运算的逻辑示例。,3、补码表示法,图3.1实现加法运算的逻辑示例(参见教材P67说明),3、补码表示法,3、补码表示法,(2)0 的表示:0 的补码表示形式是唯一的,即分别按照正数和负数表示均一致,为全零。 +0补 000 -0补 000 (3)表示范围:对于n1位补码机器数X,它所能表示的数据范围为: 定点整数:2nX 2n1 定点小数:1X 12n 计算机中的整型数据(int)均用补码来表示。 正数的

26、原码、补码和反码的表示形式是相同的,而负数则各不相同。,包括1位符号位,n位数值位,4、移码表示法,(1)表示方法:最高位为符号位,其他位为数值位。 符号位:1正数,0负数。 数值位:正数时,与绝对值相同;负数时,为绝对值取反后,末位加1。 对于定点整数: 若X=+X1X2Xn,则X移= 1,X1X2Xn ; 若X=- X1X2Xn ,则X移= 0,X1X2Xn 1。 对于定点小数: 若X=+0. X1X2Xn ,则X移= 1.X1X2Xn ; 若X=- 0.X1X2Xn ,则X移= 0.X1X2Xn 0.001。,移码表示:即为补码的符号位取反,4、移码表示法,例1:X=1011,Y1011

27、,则: X移 ;Y移 ; 例2:X=0.1101,Y- 0.1101,则: X移 ;Y移 ; 例3: X=1011, Y- 0.1101,求X和Y的8位移码机器数。 X移 ;Y移 ; 例4:0移?,1,1011,0,0101,1.1101,0.0011,1,0001011,0. 0011000,4、移码表示法,(2)0 的表示:0 的移码表示形式是唯一的,即分别按照正数和负数表示均一致。 +0移 100 -0移 100 (3)表示范围:对于n1位移码机器数X,它所能表示的数据范围为: 定点整数:2n1X 2n1 定点小数:1X 12n 移码通常作为浮点数的阶码。,包括1位符号位,n位数值位,四

28、、浮点机器数的表示方法,1、浮点机器数的格式 2、浮点机器数的规格化表示 3、IEEE 754浮点数标准,1、浮点机器数的格式,浮点机器数用于表示实数,其小数点的位置由其中的阶码规定,因此是浮动的。 浮点数N的构成:,浮点数的格式:阶码的底是隐含规定的。,在机器中,为了方便浮点数大小的比较,通常将数符放置在浮点数的首位。,1、浮点机器数的格式,尾数M:为定点小数,尾数的位数决定了浮点数有效数值的精度,尾数的符号代表了浮点数的正负,因此又称为数符。尾数一般采用原码和补码表示。 阶码E:为定点整数,阶码的数值大小决定了该浮点数实际小数点位置与尾数的小数点位置(隐含)之间的偏移量。阶码的位数多少决定了浮点数的表示范围。阶码的符号叫阶符。阶码一般采用移码和补码表示。 阶码的底R:一般为2、8或16 ,且隐含规定。,2、浮点机器数的规格化表示,浮点数的规格化表示:为了充分利用尾数的二进制数位来表示更多的有效数字,将尾数的绝对值限定在某个范围之内。 例如:R2,则规格化浮点数的尾数M应满足条件:最高有效位为1,即,对于非规格化浮点数,可以通过修改阶码和左右移尾数的方法来使其变为规格化浮点数,这个过程叫做规格化。,2、浮点机器数的规格化表示,例:一浮点数的阶码为6位(包括

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论