数据的机器层次表示(终).ppt
《数据的机器层次表示(终).ppt》由会员分享,可在线阅读,更多相关《数据的机器层次表示(终).ppt(89页珍藏版)》请在三一办公上搜索。
1、1,中国计算机学会“21世纪大学本科计算机专业系列教材”计算机组成原理,2,第2章数据的机器层次表示,3,本章学习内容,2.1 数值数据的表示2.2 机器数的定点表示和浮点表示2.3 非数值数据的表示2.4 十进制数和数串的表示2.5 现代微型计算机中的数据表示举例2.6 数据校验码,4,本章学习要求,了解:无符号数与带符号数,真值和机器数等概念 掌握:原码、补码、反码表示法以及三种码制与真值之间的转换方法 掌握:定点数和浮点数的表示范围理解:浮点数阶码的移码了解:IEEE754浮点数标准掌握:常见的字符编码方法(ASCII码)、汉字国标码、区位码、机内码掌握:8421码、2421码和余3码掌
2、握:奇偶校验位及其形成方法了解:海明校验码和循环冗余校验码,5,2.1 数值数据的表示,数据有无符号数和带符号数之分。带符号数根据其编码的不同又有 原码、补码和反码3种形式。,6,2.1.1 计算机中的数值数据,二进制数:后缀B八进制数:后缀Q十进制数:后缀D或省略后缀十六进制数:后缀H,7,2.1.2 无符号数和带符号数,无符号数,就是整个机器字长的全部二进制位均表示数值位(没有符号位),相当于数的绝对值。例如:N1=01001 表示无符号数9 N2=11001 表示无符号数25 机器字长为n+1位的无符号数的表示范围是0(2n+1-1),此时二进制的最高位也是数值位,其权值等于2n。若字长
3、为8位,则数的表示范围为0255。,8,2.1.2 无符号数和带符号数(续),用“+”、“-”号加绝对值来表示数值的大小,用这种形式表示的数值在计算机技术中称为“真值”。约定二进制数的最高位为符号位,“0”表示正号,“1”表示负号。这种在计算机中使用的表示数的形式称为机器数。,9,2.1.2 无符号数和带符号数(续),常见的机器数有原码、反码、补码等3种不同的表示形式。带符号数的最高位被用来表示符号位,而不再表示数值位。N1=01001 表示+9。N2=11001 表示9。,10,2.1.3 原码表示法,原码表示法是一种最简单的机器数表示法,用最高位表示符号位,符号位为“0”表示该数为正,符号
4、位为“1”表示该数为负,数值部分与真值相同。设二进制纯小数的原码形式为Xs.X1X2Xn,字长n+1位,其中Xs表示符号位。例1:X1=0.0110,X1原=0.0110 X2=-0.0110,X2原=1.0110,11,2.1.3 原码表示法(续),设二进制纯整数的原码形式为XsX1X2Xn,其中Xs表示符号位。例2:X1=1101,X1原=01101 X2=-1101,X2原=11101 在原码表示中,真值0有两种不同的表示形式:+0原=00000-0原=10000,12,补码的符号位表示方法与原码相同,其数值部分的表示与数的正负有关:对于正数,数值部分与真值形式相同;对于负数,将真值的数
5、值部分按位取反,且在最低位上加1。若真值为纯小数,它的补码形式为Xs.X1X2Xn,其中Xs表示符号位。例5:X1=0.0110,X1补=0.0110 X2=-0.0110,X2补=1.1010,2.1.4 补码表示法,13,若真值为纯整数,它的补码形式为XsX1X2Xn,其中Xs表示符号位。例6:X1=1101,X1补=01101 X2=-1101,X2补=10011 在补码表示中,真值0的表示形式是唯一的:+0补=-0补=00000,2.补码表示(续),14,当X为正数时,X补=X原=X 当X为负数时,由X原转换为X补的方法:X原除掉符号位外的各位取反加“1”。自低位向高位,尾数的第一个“
6、1”及其右部的“0”保持不变,左部的各位取反,符号位保持不变。例7:X原=1.1110011000 X补=1.0001101000,3.由真值、原码转换为补码,15,2.1.5 反码表示法,反码表示法与补码表示法有许多类似之处,对于正数,数值部分与真值形式相同;对于负数,将真值的数值部分按位取反。若真值为纯小数,它的反码形式为Xs.X1X2Xn,其中Xs表示符号位。例9:X1=0.0110,X1反=0.0110 X2=-0.0110,X2反=1.1001,16,2.1.5 反码表示法(续),若真值为纯整数,它的反码形式为XsX1X2Xn,其中Xs表示符号位。例10:X1=1101,X1补=01
7、101 X2=-1101,X2补=10010 在反码表示中,真值0也有两种不同的表示形式:+0反=00000-0反=11111,17,1.比较对于正数它们都等于真值本身,而对于负数各有不同的表示。最高位都表示符号位,补码和反码的符号位可作为数值位的一部分看待,和数值位一起参加运算;但原码的符号位不允许和数值位同等看待,必须分开进行处理。对于真值0,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。原码、反码表示的正、负数范围相对零来说是对称的;但补码负数表示范围较正数表示范围宽,能多表示一个最负的数(绝对值最大的负数),其值等于-2n(纯整数)或-1(纯小数)。,2.1.6 三种
8、码制的比较与转换,18,真值与3种机器数间的对照,19,2.转换,如果已知机器的字长,则机器数的位数应补够相应的位。例如,设机器字长为8位,则:X1=1011 X2=-1011 X1原=00001011 X2原=10001011 X1补=00001011 X2补=11110101 X1反=00001011 X2反=11110100 X3=0.1011 X4=-0.1011 X3原=0.1011000 X4原=1.1011000 X3补=0.1011000 X4补=1.0101000 X3反=0.1011000 X4反=1.0100111,20,2.2 机器数的定点表示与浮点表示,计算机在进行算
9、术运算时,需要指出小数点的位置。根据小数点的位置是否固定,在计算机中有两种数据格式:定点表示和浮点表示。,21,2.2.1 定点表示法,在定点表示法中约定:所有数据的小数点位置固定不变。1.定点小数 小数点的位置固定在最高有效数位之前,符号位之后,记作Xs.X1X2Xn,这个数是一个纯小数。定点小数的小数点位置是隐含约定的,小数点并不需要真正地占据一个二进制位。,22,定点小数表示范围,图2-2 定点小数格式 当Xs=0,X1Xn=1时,X为最大正数。X最大正数=1-2-n 当Xn=1,XsXn-1=0时,X为最小正数。X最小正数=2-n,23,定点小数表示范围(续),当Xs=1,表示X为负数
10、,此时情况要稍微复杂一些,这是因为在计算机中带符号数可用补码表示,也可用原码表示。原码和补码的表示范围有一些差别。若机器数为原码表示,当XsXn均等于1时,X为绝对值最大的负数。X绝对值最大负数=-(1-2-n)若机器数为补码表示,当Xs=1,X1Xn均等于0时,X为绝对值最大的负数。X绝对值最大负数=-1,24,若机器字长有n+1位,则有:原码定点小数表示范围:-(1-2-n)(1-2-n)补码定点小数表示范围:-1(1-2-n)若机器字长有8位,则有:原码定点小数表示范围:-补码定点小数表示范围:-1,定点小数表示范围(续),25,2.定点整数,定点整数即纯整数,小数点位置隐含固定在最低有
11、效数位之后,记作XsX1X2Xn。图2-3 定点整数格式,26,若机器字长有n+1位,则有:原码定点整数的表示范围:-(2n-1)(2n-1)补码定点整数的表示范围:-2n(2n-1)若机器字长有8位,则有:原码定点整数表示范围:-127127补码定点整数表示范围:-128127,定点整数表示范围,27,小数点的位置根据需要而浮动,这就是浮点数。例如:N=MrE 式中:r为浮点数阶码的底,与尾数的基数相同,通常r=2。E和M都是带符号数,E叫做阶码,M叫做尾数。在大多数计算机中,尾数为纯小数,常用原码或补码表示;阶码为纯整数,常用移码或补码表示。,2.2.2 浮点表示法,28,图2-5 浮点数
12、的一般格式 浮点数的底是隐含的,在整个机器数中不出现。阶码的符号位为es,阶码的大小反映了在数N中小数点的实际位置;尾数的符号位为ms,它是整个浮点数的符号位,表示了该浮点数的正负。,浮点数的一般格式,29,1.浮点数的表示范围,当es=0,ms=0,阶码和尾数的数值位各位全为1(即阶码和尾数都为最大正数)时,该浮点数为最大正数:X最大正数=(1-2-n)当es=1,ms=0,尾数的最低位mn=1,其余各位为0(即阶码为绝对值最大的负数,尾数为最小正数)时,该浮点数为最小正数:X最小正数=2-n,30,1.浮点数的表示范围(续),当es=0,阶码的数值位为全1;ms=1,尾数的数值位为全0(即
13、阶码为最大正数,尾数为绝对值最大的负数)时,该浮点数为绝对值最大负数:X绝对值最大负数=-1,31,为了提高运算的精度,需要充分地利用尾数的有效数位,通常采取浮点数规格化形式,即规定尾数的最高数位必须是一个有效值。1/2|M|1,2.规格化浮点数,32,2.规格化浮点数(续),在尾数用补码表示时,规格化浮点数应满足尾数最高数位与符号位不同(msm1=1),即当1/2M1时,应有0.1xxx形式,当-1M-1/2时,应有1.0 xxx形式。需要注意的是当M=-1/2,对于原码来说,是规格化数,而对于补码来说,不是规格化数。,33,2.规格化浮点数(续),当es=1,ms=0,尾数的最高位m1=1
14、,其余各位为0时,该浮点数为规格化的最小正数:X规格化的最小正数=2-1 规格化的最小正数大于非规格化的最小正数。,34,浮点数的典型值,35,2.2.3 移码表示法,移码就是在真值X上加一个常数(偏置值),相当于X在数轴上向正方向平移了一段距离,这就是“移码”一词的来由。X移=偏置值+X 对于字长8位的定点整数,偏置值为27。例11:X=1011101 X移=27+X=10000000+1011101=11011101 X补=01011101 例12:X=-1011101 X移=27+X=10000000-1011101=00100011 X补=10100011,36,偏置值为27的移码、补
15、码和真值之间的关系,37,偏置值为2n的移码的特点,在移码中,最高位为“0”表示负数,最高位为“1”表示正数。移码为全0时,它所对应的真值最小,为全1时,它所对应的真值最大。真值0在移码中的表示形式是唯一的,即+0移=-0移=1000。移码把真值映射到一个正数域,所以可将移码视为无符号数,直接按无符号数规则比较大小。同一数值的移码和补码除最高位相反外,其他各位相同。,38,浮点数的阶码采用移码的原因,便于比较浮点数的大小。阶码大的,其对应的真值就大,阶码小的,对应的真值就小。简化机器中的判零电路。当阶码全为0,尾数也全为0时,表示机器零。,39,1.定点、浮点表示法的区别数值的表示范围 假设定
16、点数和浮点数的字长相同,浮点表示法所能表示的数值范围将远远大于定点数。精度 对于字长相同的定点数和浮点数来说,浮点数虽然扩大了数的表示范围,但这正是以降低精度为代价的,也就是数轴上各点的排列更稀疏了。,2.2.4 定点、浮点表示法和定点、浮点计算机,40,数的运算 浮点运算要比定点运算复杂得多。溢出处理 在定点运算时,当运算结果超出数的表示范围,就发生溢出。而在浮点运算时,运算结果超出尾数的表示范围却并不一定溢出,只有当阶码超出所能表示的范围时,才发生溢出。,1.定点、浮点表示法的区别(续),41,2.定点机与浮点机,通常可以将计算机分为几档:定点机 以定点运算为主,浮点运算是通过软件来实现的
17、。定点机浮点运算部件 浮点运算部件是专门用于对浮点数进行运算的部件。浮点机 具有浮点运算指令和基本的浮点运算器。,42,图2-6 IEEE 754标准的浮点数格式,2.2.6 实用浮点数举例,43,IEEE754标准的浮点数,以短浮点数为例讨论浮点代码与其真值之间的关系。最高位为数符位;其后是8位阶码,以2为底,阶码的偏置值为127;其余23位是尾数。为了使尾数部分能表示更多一位的有效值,IEEE754采用隐含尾数最高数位1(即这一位1不表示出来)的方法,因此尾数实际上是24位。应注意的是,隐含的1是一位整数(即位权为20),在浮点格式中表示出来的23位尾数是纯小数,并用原码表示。,44,IE
18、EE754标准的浮点数(续),例13:将(100.25)10转换成短浮点数格式。十进制数二进制数(100.25)10=(1100100.01)2 非规格化数规格化数 1100100.01=1.1001000126 计算移码表示的阶码(偏置值阶码真值)1111111+110=10000101 以短浮点数格式存储该数。符号位=0 阶码=10000101,45,IEEE754标准的浮点数(续),短浮点数代码为 0;100 0010 1;100 1000 1000 0000 0000 0000 表示为十六进制的代码:42C88000H。例14:把短浮点数C1C90000H转换成为十进制数。十六进制二进
19、制形式,并分离出符号位、阶码和尾数。C1C90000H=1;10000011;,46,IEEE754标准的浮点数(续),计算出阶码真值(移码偏置值)10000011-1111111=100 以规格化二进制数形式写出此数 1.100100124 写成非规格化二进制数形式 11001.001 转换成十进制数,并加上符号位。(11001.001)2=(25.125)10 所以,该浮点数=-25.125,47,2.3 非数值数据的表示,非数值数据,又称为字符数据,通常是指字符、字符串、图形符号和汉字等各种数据,它们不用来表示数值的大小,一般情况下不对它们进行算术运算。,48,2.3.1 字符和字符串的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 机器 层次 表示

链接地址:https://www.31ppt.com/p-5985973.html