第2章 数码系统_第1页
第2章 数码系统_第2页
第2章 数码系统_第3页
第2章 数码系统_第4页
第2章 数码系统_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章 数码系统 2.1 计算机中数据的表示方法 2.2 机器数的编码格式 2.3 数值数据的表示范围 2.4 错误检验码 2.1 计算机中数据的表示方法数据分为:符号数据和数值数据2.1.1符号数据的表示方法 各种符号:26个英文字母(AZ, az),10个十进制数(09),标点符号,专用符号(+ ?等)。 汉字,图形,语音信息等等符号数据又称非数值数据.1、字符(1)字符的表示:8位二进制来表示,构成一个字节,目前采用ASCII码,7位二进制数表示,构成128个编码。第8位可作为校验位。所以字符在计算机中都是以ASCII码的形式存储的。(2)多个字符就是字符串:存储时每个字节存储一个字符,

2、连续存储。2、汉字 国标规定每个汉字或图形符号都用2个字节来表示,每个字节使用其低端7位,称为国标码。汉字在不同的处理阶段有不同的编码 汉字的输入:输入码 汉字的存储:机内码 汉字的输出:字形码(字库)各编码之间的关系:输入码国标码机内码字形码2.1.2 数值数据的表示方法数值数据包括:无符号数和带符号数(1)无符号数:所有的位都表示一个数值(2)带符号数:最高位表示符号位,其他位表示数值位。有两种表示方法:定点表示法和浮点表示法。1. 定点数的表示方法 定点数:小数点位置固定不变的数,而且只允许固定在数的开头和末尾(1)定点小数和定点整数:定点小数定点整数 DfDn-1.D0数符小数点位置(

3、隐含) DfDn-1.D0数符小数点位置(隐含) 2. 浮点数的表示方法浮点数:小数点的位置可以浮动的数任何一个二进制数N都可以表示为N=2EM其中E是一个二进制整数,称为数N的阶码,2为阶码的基数,M是二进制小数,称为数N的尾数。E和M可正可负。尾数M表示数N的全部有效数据,阶码E指明该数的小数点位置,表示数据的大小范围。 若E=0,小数点固定在最高位之前,则该数是一个纯小数或定点小数。 例如 N=200.110101001=0.110101001 若取E=n(n为尾数的位数),则把小数点定在尾数最末位之后,这时表示一个纯整数(定点整数)。 例如 N=270.1011010=01011010

4、 当E不为0或n时,则阶码是定点整数,尾数是一个定点小数,这是就是一个浮点数。2.2 机器数的编码格式(解决“+”,“-”的表示问题)2.2.1原码的表示方法符号“+”用0来表示,“-”用1来表示机器数:采用某种编码形式表示带符号的二进制数。将正负号分别用一位数码0和1来代替的数被称为机器数。真值:机器数所对应的实际数值。(+,-) 用正负符号表示正数、负数的术称为真值例1:X=+0.10110101 Y=-0.10101000则X原=0.10110101 Y原=1.10101000例2: X=+11100101 ,Y=011100101 则X原=011100101, Y原=101110010

5、1特殊:X=+0,Y=0 用8位来表示 X原=00000000, Y原=10000000原码表示的优点:直观,简单 缺点:1)0有两种编码 2)算术运算复杂(需要机器不仅有加法器还要有减法器)2.2.2补码的表示方法1.补码的概念 以时钟为例介绍例1:X=+0.11010001 Y=0.11011000 则X补=0.11010001 Y补=1.00101000例2:X=+10110100 Y=010110100 则X补=010110100 Y补=1101001100规则: 负数的原码除符号位,其它位求反加12.有关补码的运算(1)已知原码或真值求补码 正数的补码等于其原码 负数的补码:原码除符

6、号位,其它位求反加1(2)已知补码求原码 X补=0.11001001 Y补=1.11001001则求X原和Y原(3)已知X补,求-X补X补=0.10101110 Y补=1.11110001则求-X补和-Y补补码运算的总结1) 正数的补码与原码相同2)已知补码求原码规则:对补码再求补3)已知补码求对应的负数的补码规则:补码连同符号位一起各位取反,末位加1补码的性质:性质1:+0和0的编码的统一 +0补=00000000 -0补=00000000性质2:易于运算引入:对于时钟来说:+8和-4是等效的,所以有10-4=10+8(去掉模12)=6补码也是运用模的特点使减法变加法.性质3:补码表示的数比

7、原码表示的数多一个。例如某机字长8位,包括一位符号位-128补=100000002.2.3反码的表示方法规则:正数的反码等于原码 负数的原码除符号位其它位求反 2.2.4移码的表示方法规则:将补码的符号位求反作用:用于浮点数阶码变换 比如用4位表示(包括1位符号位) X=-8 X补=1000, X移=0 X=0 X补=0000, X移=+8 X=+7 X补=0111, X移=+15实质:将具有正、负值的阶码在数轴上移到正数的范围(+0 +15)移码有如下性质:在移码表示法中,0的移码是唯一的,机器0的形式为000,它所表示的真值是X移所能表示的数中最小的数。移码的最高位是符号位,但其表示的意义

8、与原码和补码表示的意义相反。符号为0时,表示负数;符号为1,表示正数。(4) 移码一般只进行加减运算,运算后需要对结果进行修正,修正量为2n,即要对结果的符号位取反后,才能得到移码形式的结果。(5)通过比较两个移码的大小, 就可得知其对应的真值的大小。例题例题1 写出下列各数的原码、反码、补码、移码(用二进制数表示)。(1)35/64 (2)23/128 (3)127(4)用小数表示1 (5)用整数表示1 (6)用整数表示128 解:1在定点小数中原码和反码表示不出来,但补码可以表示,1在定点整数中表示最大的负数,128在定点整数表示中原码和反码表示不出来,但补码可以。 2.2.5 浮点数的原

9、码、反码和补码表示法例如:X0.1110110l2101则X原1101,0.11101101 X反1010,0.11101101 X补1011,0.1110110lX+010101102010则X原0010,0.1010110 X反0010,0.1010110 X补0010,0.1010110 X0.101011002011 则X原0011,1.10101100 X反0011,1.01010011 X补0011,1.01010100X0.010100012111 则X原1111,1.01010001 X反1000,1.10101110 X补1001,1.10101111 2把十进制数X=(+1

10、28.75)210写成浮点表示的机器数,阶码、尾数分别用原码、反码和补码表示。设阶码4位,阶符1位,尾数15位,尾数符号1位。解:X=(+128.75)210 X原1 0010 0 100000001100000 X反1 1101 0 100000001100000 X补1 1110 0 100000001100000 阶 阶 数 尾 符 码 符 数1、补码表示阶码部分(阶符+阶码数值):用补码表示尾数部分(尾符+尾数数值):用补码表示比如:0.11012-4 阶码用4位,尾数用8位(包括符号位) 表示为: 1 100 , 0 1101000阶符阶码数值尾符 尾数数值2、移码表示 题如上:答案

11、:0 0100 1101000结论1:阶码位数越多,则所表示的数据的范围越大,尾数的位数越多,则所表示的数据的精度越高所以当机器字长一定时,要合理分配阶码和尾数的位数尾符阶码尾数数值移码表示补码表示结论2:在浮点数的运算过程中,为了使尾数的有效位不丢失,要求尾数的小数部分最高位为1分析:比如0.00121,假设字长固定为6位,阶码占3位,则尾数为3位(包含符号位),而实际尾数的数值位只能占2位,问题就出现了所以我们需要对浮点数进行规格化处理,目的就是为了提高它的精度. 浮点数的规格化处理: (1)原码形式的规格化 正数: 0.1*的形式; 负数: 1.1*的形式 (2)补码形式的规格化 正数:

12、 0.1*的形式; 负数: 1.0*的形式例1:将下列十进制数表示成浮点规格化数,阶码为3位,尾数9位(包括符号位)分别用以上两种格式表示:(1)27/640.011011 (2)27/64 0.011011 原码: 27/640.1101121 0.110112101 27/64 1.1101121 1.110112101补码: 27/640.110112111 -27/64 1.001012111 例题2: 将下列十进制数表示成浮点格式化数,阶码4位(含符号),分别用补码和移码表示,尾数6位(含符号),用补码表示。(1)19/512(2)19/512解: (1) 19/512=100112

13、-90.10011 2-4 其补码表示为:1100 010011 其阶码用移码表示为0 0100 10011 (其中阶码为484)(2) 19/512=100112-90.10011 2-4 其补码表示为:1100 101101 其阶码用移码表示为1 0100 01101 (其中阶码为484)2.2.6实用浮点数的格式按照各个字段不同长度的设置,有几种格式:32位浮点数:S:1位;E:8位;M:23位 总位数:32位,偏移量:7FH。64位浮点数: S:1位;E:11位;M:52位 总位数:64位,偏移量:3FFH。SEM数符阶码尾数单精度(-1)S 1.M2 E-127说明: S=0为正,S

14、=1为负数 IEEE754标准中规定“1”不表示出来(隐含),所以不管23位的尾数为何值都是规格化的浮点数.特殊:当尾数为0时,阶码大小失去意义,或阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数作为0,称为“机器零”例1:写出十进制数0.15625的IEEE754编码。例2:一个IEEE754的编码1,01111110,100那么它代表的十进制数为多少?解1: 0.15625 =0.00101步骤1:表示成IEEE754规格化的形式 0.00101=1.012-3步骤2:求E E127(3) 124步骤3:写出编码 0 ,01111100, 0100解2:E=126

15、,E1271 (-1) 1.1 2-10.110.75例题1:某机采用使用浮点数格式的短浮点数数为“C2308000H”首,计算该浮点数的真值。解:将其展开为二进制数,并区分出三个字段的编码为: 1,100,0010,0011,0000,1000,0000,0000,0000 数 阶 尾 符 码 数 由于数符为1,该浮点数是一个负数。 阶码真值1000010001111111 00000101 尾数10110,0001,0000,0000,0000,000 于是该浮点数的真值为: 1011000012101101100.00154.125例2:某机中现有浮点数为+74.75,将其变换成32位的

16、短浮点数格式的过程如下: 首先将其变换成二进制格式: 74.75+10011001l 表示成规格化二进制格式为: +10011001l+1001100112110 计算出阶码的移码为: 1100111111110000101 于是该浮点数的短浮点数格式应为: 0100,0010,1001,1001,1000,0000,0000,000042998000H 例3:写出十进制数0.15625的IEEE754编码。例4:一个IEEE754的编码1,01111110,100那么它代表的十进制数为多少?解3: 0.15625 =0.00101步骤1:表示成IEEE754规格化的形式 0.00101=1.

17、012-3步骤2:求E E127(3) 124步骤3:写出编码 0 ,01111100, 0100解4:E=126,E1271 (-1) 1.1 2-10.110.752.2.5十进制数的编码格式计算机中,数值的表示还可以用十进制数来表示,用四位二进制编码表示十进制数,称为BCD码.1、BCD码(二十进制编码)(1)定义:用4位二进制数来表示一位十进制数。(2)种类:有权码(8421,5421,2421码)和无权码(余3码,格雷码) 8421码:使用其中的10个编码00001001来表示十进制数09。 1001111111111111111111000100100010011100111010

18、11100011101110100001111101110010011100101000011000001110101001101110101010110001100101101110001011011110001110101110100010011001000001001100100110010001010110011100010011010010000111011001010100000100110101011100010010001101000001001000110100000000000011000000000000000000009876512340格雷码(2)格雷码(1)余3码4

19、31184-2-152112421无权码位有权码十进制符号(BCD)8421实际运用的时候,最常用的是8421码。有两种存放格式:2、十进制数串的表示方法a)非压缩型的十进制数用十进制数的ASCII码来表示格式为:00110100 “4” “+”ASCII码为2B 00110011 “3” “-” ASCII码为2D 00110010 “2” 00110001 “1”b)压缩型的十进制数 每1位十进制数用4位二进制数表示。例:“1234”在存储器字长为8位的机器中存放格式为 0011 0100 “34” 0001 0010 “12” 有符号的十进制数:用C表示“+”,D表示“-”而且均放在数字

20、串的最后(规定:数位为偶数)+427:0100 ,0010,0111,1100-42: 0000,0100,0010,1101(方法:在第一个字节高4位补“0”)2.3 数值数据的表示范围2.3.1 定点数的表示范围(以字长为8位分析) 1、定点小数的表示范围(1)原码表示原码: 1.1111111 1.0000001 0.0000001 0.1111111十进制: -(1-2-7) -2-7 2-7 1-2-7 原码表示的n+1位定点小数的表示范围: (12n)(12n )最小负数 最大负数 最小正数 最大正数(2)补码表示 补码: 1.0000000 1.1111111 0.0000001

21、 0.1111111十进制: -1 -2-7 2-7 1-2-7 用补码表示的n+1位定点小数的表示范围: 112n作为定点小数-1.0补=1.0.0最小负数 最大负数 最小正数 最大正数2 、定点整数的表示范围(1)原码表示原码: 11111111 10000001 00000001 01111111十进制:(27-1) -1 1 27-1 原码表示的n+1位定点小数的表示范围: (2n1)2n1最小负数 最大负数 最小正数 最大正数2)补码表示补码:10000000 11111111 00000001 01111111十进制:- 27 -1 1 27-1 补码表示的n+1位定点小数的表示范

22、围: 2n2n1定点整数中128补10000000小结:补码的表示范围在负端比原码的多了一个数最小负数 最大负数 最小正数 最大正数 定点机: 用定点数进行运算处理的机器称为定点机。 几种编码方式中, 移码的表示范围和补码的表示范围相同; 反码的表示范围和原码的表示范围相同。例题1:设机器字长为16位,用定点小数表示,分析其原码和补码的表示范围。例题2:设机器字长为16位,用定点整数表示,分析其原码和补码的表示范围。2.3.2 浮点数的表示范围设阶码和尾数各为4位(包含1个符号位)则浮点数的表示范围。(都是以补码的形式)1、阶码表示范围(-87)(1000;1111;0001;0111)2、规

23、格化尾数表示范围:-1(1-2-3) (1.000; 1.011; 0.100; 0.111)问题1:这里的最大负数为1.011? 应该为1.111,但是写成原码形式为1.001,而这种表示形式不是规格化表示,所以在最小的数上作加工:1.001+0.1=1.101,对应的补码为1.011。问题2:最小的正数应为0.001,但不符合规格化表示,所以在此基础上进行修正:0.1003、规格化浮点数表示范围: 最小负数:阶码为最大正数,尾数为最小负数 最大负数:阶码为最小负数,尾数为最 大负数 最小正数:阶码为最小负数,尾数为最小正数 最大正数:阶码为最大正数,尾数为最大正数补码表示: 201111.

24、000(最小负数) 21000 1.011(最大负数) 21000 0.100(最小正数) 20111 0.111(最大正数)阶码移码表示: 211111.000(最小负数) 20000 1.011(最大负数) 20000 0.100(最小正数) 21111 0.111(最大正数)例:设字长为64位,其中阶码16位,含1位阶符,补码表示,R=2;尾数为48位,含1位数符,补码表示,规格化,则所能表示的绝对值最大负数为( )1)-215(1-2-47) 2)- (1-2-47)3) (-1) 4) (-1)总结:阶码决定了浮点数表示的范围,尾数决定了浮点数表示的精度.12152121521522

25、例题:设浮点数的阶码6位(含符号位),尾数10位(含符号位),求其表示的范围。解:(1)阶码范围: 最小负数 最大负数 0 最小正数 最大正数二进制补码:100000 111111 000001 011111十进制真值:32 1 1 31(2)规格化尾数表示范围: 最小负数 最大负数 0 最小正数 最大正数二进制补码:1.000 1.0111 0.10000 0.11十进制真值:1 (2-9+2-1 ) 21 1 2-9(3)规格化浮点数的表示范围:最小负数:20111111.0000 (2311 )最大负数:21000001.01111 (232(2-9+2-1) 最小正数:21000000

26、.1000 (2322-1 ),最大正数:20111110.1111 (231(1-2-9) ), 2.4 数据的校验 计算机在对数据的处理过程中,都有可能由于硬件故障、软件错误或信息干扰导致出错。 解决办法:采用一定的错误检测的编码方法。检测码: 1)检错码:只能发现错误,不能纠正错误。 2)纠错码:既能检测又能纠错。 校验原理:数据校验码是在合法的数据编码之间,加进一些不允许出现的(非法的)编码,使合法的数据编码出现错误时成为非法编码。这样就可以通过检测编码的合法性达到发现错误的目的。2.4.1 奇偶校验1、特点:只能检测一位错,无法进行错误定位。常用于存储器读写检查,或ASCII字符传送

27、过程中的检查。2、原理:它是在被传送的n位信息组上, 加上一个二进制位作为校验位,使配置后的n+1位二进制代码中1的个数为奇数( 奇校验)或偶数(偶校验)例:数据奇校验编码偶校验编码0000000010000000000000000001110101001110101101110101其中,最高一位为校验位,其余低八位为数据位。(校验位也可以放在最低位)发送端将带有校验位的码字发出去,接受端从接收端检查码字中的“1”的个数.(两位错能检测吗?)练习题及参考答案练习题及参考答案一、选择题一、选择题1下列数中最小的数为( )。 A(101001)2 B(52)8 C(101001)BCD D(23

28、3)162下列数中最大的数为( )。 A(10010101)2 B(227)8 C(96)16 D(143)53在机器数中,( )的零的表示形式是惟一的。 A原码 B补码 C反码 D原码和反码4针对8位二进制数,下列说法中正确的是( )。 A127的补码为10000000 B127的反码等于0的移码 C+1的移码等于127的反码 D0的补码等于1的反码5一个8位二进制整数,采用补码表示,且由3个“1”和5个“0”组成,则最小值为( )。 A127 B32 C125 D36计算机系统中采用补码运算的目的是为了( )。 A与手工运算方式保持一致 B提高运算速度 C,简化计算机的设计 D提高运算的精

29、度7某机字长32位,采用定点小数表示,符号位为1位,尾数为31位,则可表示的最大正小数为( ),最小负小数为( )。 A,(2311) B(1232) C+(1231)+1 D(1231) 18某机字长32位,采用定点整数(原码)表示,符号位为1位,尾数为31位,则可表示的最大正整数为(),最小负整数为()。 A(2311) B(1232) C+(2301) D(2311)9用n+1位字长(其中1位符号位)表示定点整数(原码)时,所能表示的数值范围是()。 A0N2n+11 B0N2n1 C0N2n-1110用n+1位字长(其中1位符号位)表示定点小数(原码)时,所能表示的数值范围是()。 A0N12(n1) B0N12n C0N12n111定点8位字长的字,采用2的补码形式表示8位二进制整数,可表示的数范围为()。 A127+127 B21272127 C21282127 D128+12712假定下列字符码中有奇偶校验位,但没有数据错误,采用偶校验的字符码是()。 A11001011 B11010110 C11000001 D1100100113若某数z的真值为0.1010,在计算机中该数表示为1.0110,则该数所用的编码方法是()码。 A原 B补 C反 D移1

温馨提示

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

评论

0/150

提交评论