第2章数制与编码精选文档.ppt
《第2章数制与编码精选文档.ppt》由会员分享,可在线阅读,更多相关《第2章数制与编码精选文档.ppt(161页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章数制与编码本讲稿第一页,共一百六十一页21进位计数制进位计数制 211十进制数的表示十进制数的表示 位置记数法 按权展开法 本讲稿第二页,共一百六十一页212二进制数的表示二进制数的表示 由低位向高位“逢二进一”位置计数法:按权展开法 对二进制数的表示,可以在数字右下角标注2或B(Binary的首字母),如(10110)2、(10110)B 本讲稿第三页,共一百六十一页二进制运算规则简单。其运算规则如下:加法规则 0+0=0 0+l=1 l+0=1 l+1=0(同时向相邻高位进1)减法规则 00=0 01=1(同时向相邻高位借1)10=1 11=0乘法规则 00=0 01=0 l0=0
2、11=l除法规则 01=0 l1=1本讲稿第四页,共一百六十一页2.1.32.1.3其他进制数的表示其他进制数的表示 八进制数的基数是8,采用的数码是0,l,2,3,4,5,6,7。计数规则是从低位向高位“逢八进一”,通常在八进制数字的右下角标注8或数字后边接O(Octal的首字母)。十六进制数的基数为16,采用的数码是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。其中,A,B,C,D,E,F分别代表十进制数字10,11,12,13,14,15。十六进制的计数规则是从低位向高位“逢十六进一”。通常,在十六进制数字盼右下角标注16或数字后边接H(Hex的首字母)。本讲稿第五页,
3、共一百六十一页 十进制数二进制数八进制数十六进制数(r=10)(r=2)(r=8)(r=16)00000OO0l000l011200lO02230011033401000445010l055601100667011l0778100010891001119lO101012A1l101113B12110014C13110l15D1411lO16E15111117F表表2.12.1不同进位计数制的各种数码不同进位计数制的各种数码本讲稿第六页,共一百六十一页2 22 2数制转换数制转换 2 22 21 1二进制数与十进制数的转换二进制数与十进制数的转换 二进制数转换成十进制数是很方便的,只要将二进制数
4、写成按权展开式,并将式中各乘积项的积算出来,然后各项相加,即可得到与该二进制数相对应的十进制数。例如(10110.01)2=l24+023+122+l21+020+02-1+12-2 =16+0+4+2+0+0十0.25 =(22.25)10十进制数转换成二进制数时,需将待转换的数分成整数部分和小数部分,并分别加以转换。例如将58.625转换成二进制数时,先转换整数58,再转换小数0.625,然后合成在一起即可。本讲稿第七页,共一百六十一页2.2.2八进制、十六进制与二进制间的转换八进制、十六进制与二进制间的转换 八进制和十六进制的基数分别是8和16,并且:8=23,16=24;所以它们与二进
5、制之间具有整倍数的关系,因此可以进行直接转换。将二进制数从小数点开始,分别向左、右按3位或4位分组,不足3位或4位的则需在最高位或最低位补0,最后将每组用对应的八进制数或十六进制数代替。本讲稿第八页,共一百六十一页例如:(332.53)O=(11011010.101011)B=(DA.AC)H本讲稿第九页,共一百六十一页23带符号数的代码表示带符号数的代码表示 231真值与机器数真值与机器数 一个带符号的数由两部分组成:一部分表示数的符号,另一部分表示数的数值。数的符号是一个具有正、负两种值的离散信息,它可以用一位二进制数来表示,习惯上以0表示正数,而以1表示负数 例如,二进制正数+0.110
6、1在机器中的表示如图2.1(a)所示,二进制负数-0.1101在机器中的表示如图2.1(b)所示。图2.1二进制数在机器中的表示本讲稿第十页,共一百六十一页有符号数表示有符号数表示真值:把用“+”、“-”表示的数称为真值数,例如:-56,+123等。机器数:一个数及其符号在机器中的数值化表示。符号位上的0、1分别来表示正、负。其值称为机器数的真值。例如:-56用机器数表示(-56)10=(10111000)2 +56用机器数表示(+56)10=(00111000)2机器数可以用不同的方法来表示,常用的有原码、反码、补码和移码表示法。本讲稿第十一页,共一百六十一页2.3.22.3.2原码原码原码
7、又称为“符号-数值表示”。在以原码形式表示的正数和负数中,第1位表示符号位,对于正数,符号位记作0,对于负数,符号位记作1,其余各位表示数值部分。假如两个带符号的二进制数分别为N1和N2,其真值形式为N1=+10101 N2=-01101 则Nl和N2的原码表示形式为 N1原=010101 N2原=101101本讲稿第十二页,共一百六十一页小数原码的定义:即:X原=符号位+|X|XX原原=X 0X 0X1X11-X -1X1-X -1X0 0本讲稿第十三页,共一百六十一页例:X=+0.1011 X原=01011 X=-0.1011 X原=11011由于小数点位置已默认在符号位之后,书写时可以将
8、其省略。零的原码也有两种表示形式:+0原=00000 -0原=10000本讲稿第十四页,共一百六十一页【例】X=+105,反=原=01101001X=-105,原=11101001 本讲稿第十五页,共一百六十一页2 23 33 3反码反码 对于负数,反码的数值是将原码数值按位求反,即原码的某位为1,反码的相应位就为0,或者原码的某位为0,反码的相应位就为l。而对于正数,反码和原码相同。所以,反码数值的形成与它的符号位有关。假如两个带符号的二进制数分别为N1和N2,其真值形式为 N1=+11011 N2=-01101则N1和N2的反码表示形式为 N1反=011011 N2反=110010本讲稿第
9、十六页,共一百六十一页反码表示法反码通常用来作为由原码求补码或由补码求原码的中间过渡。小数反码的定义为:XX反反=X 0X 0X1X1(2-22-2-n-n)+X -1X+X -1X0 0本讲稿第十七页,共一百六十一页例:X=+0.1011(n=4),则X反=01011 X=-0.1011(n=4),则X反=2-2-4+X =2-2-4+(-0.1011)=10100反码零有两种表示形式:+0反=00000 -0反=11111本讲稿第十八页,共一百六十一页【例】X=+105,反=原=01101001X=-105,反=10010110X=(+127)10=(01111111)反X=(-127)1
10、0=(10000000)反8位反码其数值范围为+127-127,而0有+0、-0两种表示。本讲稿第十九页,共一百六十一页2.3.42.3.4补码补码 补码又称为“对2的补数”。在补码表示法中,正数的表示同原码和反码的表示是一样的,而负数的表示却不同。对于负数,其符号位为1,而数值位是将原码按位变反加1,即按位变反,再在最低位加1。假如两个带符号的二进制数分别为Nl和N2,其真值形式为 Nl=十11011 N2=-01010则N1和N2的补码表示形式为 N1补=O1101l N2补=110110本讲稿第二十页,共一百六十一页补码表示法小数补码的定义为:即:X补=2符号位+X (mod 2)例:X
11、=+0.1011,则X补=01011 X=-0.1011,则X补=2+X=2+(-0.1011)=10101XX补补=X 0X 0X1X12+X=2-|X|-12+X=2-|X|-1X0XX-2n)式中X为真值,n为整数的位数,即数值位个数。其实移码就是在真值上加一个常数2n。在数轴上移码所表示的范围恰好对应于真值在数轴上的范围向轴的正方向移动2n个单元。如图3-2所示,这就是移码名字的由来。其中2n可称为偏移量。本讲稿第三十四页,共一百六十一页进一步观察发现,同一个真值的移码和补码之间仅差一个符号位,若将补码的符号位由“0”改为“1”,或由“1”改为“0”,即得该真值的移码。本讲稿第三十五页
12、,共一百六十一页表3-10 真值、补码和移码对照表真真值值XX补补X移移X移移对应对应的十的十进进制整数制整数-100000-11111-11110-0000100000+00001+00010+11110+11111100000100001100010111111000000000001000010011110011111000000000001000010011111100000100001100010111110111111012313233346263本讲稿第三十六页,共一百六十一页【例】写出下列各数的原码、反码、补码、移码(用8位二进制数表示),其中最高位是符号位。如果是纯小数,小数
13、点在最高位之后;如果是整数,小数点在最低位之后。(1)27/64(2)27/64(3)-127(4)用小数表示1(5)用整数表示1(6)用整数表示128 本讲稿第三十七页,共一百六十一页表2 例2-4的机器数十进制数二进制数真值原码反码补码移码-27/64-0,0110111.01101101.10010011.10010100.100101027/640.0110110.01101100.01101100.01101101.0110110-127-11111111,11111111,00000001,00000010,0000001用小数表示-1-1.0/1.0000000/用整数表示-1-
14、11,00000011,11111101,11111110,1111111用整数表示-128-10000000/1,00000000,0000000本讲稿第三十八页,共一百六十一页2.4数的定点表示和浮点表示数的定点表示和浮点表示 在计算机中的数据有定点数和浮点数两种表示方式。在这两种方式中,小数点都不用专门的器件表示,而是按约定的方式标出。本讲稿第三十九页,共一百六十一页数的定点表示与浮点表示1.定点表示法定点数数的小数点位置固定不变。一般地,小数点的位置只有两种约定:一种约定小数点位置在符号位之后、有效数值部分最高位之前,即定点小数;另一种约定小数点位置在有效数值部分最低位之后,即定点整数
15、。本讲稿第四十页,共一百六十一页数的定点表示和浮点表示数的定点表示和浮点表示 数的定点表示数的定点表示 定点整数和小数的表示本讲稿第四十一页,共一百六十一页采用定点数表示数据的机器叫做定点机。数值部分的位数n决定了定点机中数据的表示范围。若机器数采用原码,小数定点机中数的表示范围是-(1-2-n)(1-2-n),整数定点机中数的表示范围是-(2n-1)(2n-1)。若机器数采用补码,小数定点机中数的表示范围是-1(1-2-n),整数定点机中数的表示范围是-2n(2n-1)。本讲稿第四十二页,共一百六十一页2.浮点数表示浮点数是指小数点在数据中的位置可以左、右移动的数。一个数N要用浮点数表示可以
16、写成:N=MREM表示浮点数的尾数E表示浮点数的指数或阶码R指的是在这个指数下的基数本讲稿第四十三页,共一百六十一页其中M称为尾数,可以是一个带符号的纯小数,由它来确定浮点数的符号以及精度。所以尾数的数码位越长,浮点数的精度(数据精度是指一个数的有效位数)就越高。R称为基数,也叫阶码的底。在计算机中,基数可以取2、4、8或者16,它在计算机中通常是一个默认的固定值,不用明确表示出来。本讲稿第四十四页,共一百六十一页E为阶码,是一个带符号的纯整数,由它来确定尾数的小数点的位置。阶码为正,尾数小数点向右移,浮点数增大;阶码为负,尾数的小数点向左移,浮点数减少。显然,阶码位数越多,所能表示的浮点数的
17、范围(数值范围是指机器所能表示的一个数的最大值和最小值之间的范围)也就越大。本讲稿第四十五页,共一百六十一页数的定点表示与浮点表示计算机中浮点数的格式 如下:其中,ES为阶码的符号位,表示阶的正负;MS为尾数的符号位,表示阶的正负。E1E2E3EmMSM1M2M3Mn阶符尾数尾符ES阶码本讲稿第四十六页,共一百六十一页浮点数的表示范围里常常把“0”去掉。表示正数和负数两个范围。在机器字长一定的情况下,阶码越长,它所能表示的浮点数的范围也就越大,但阶码加长之后,尾数必然会缩短,那浮点数的精度就会随之降低,所以浮点数格式的设定中要合理考虑阶码与尾数的位数分配。另外,对于尾数和阶码还牵涉到用什么机器
18、码来表示的问题,通常尾数可用原码或补码表示,而阶码可用原码、补码或移码表示。本讲稿第四十七页,共一百六十一页在浮点数实际阶码大于阶码位所能表示的最大值时,机器会停止运算,进行中断溢出处理,这种情况称为“上溢”;当浮点数实际阶码小于阶码位所能表示的最小值时,称为“下溢”。对下溢来说,实际数据的绝对值非常小,此时通常可将尾数各位强行置为0,按0来继续处理,这种0值称为机器零。本讲稿第四十八页,共一百六十一页由于浮点数的精度是由尾数的位数来确定的,所以通常总希望有尽可能长的尾数。但实际上在尾数的小数点后经常有许多位为“0”,这样尽管尾数位数较多,尾数的有效位也会缩短,为了提高浮点数的精度,可以用规格
19、化数表示尾数。当尾数不是规格化数时,可以通过修改阶码并同时对尾数左右移位的办法使其变成规格化数,这个过程称为尾数的规格化。本讲稿第四十九页,共一百六十一页3.浮点数的规格化当R=2且尾数用二进制数表示时,浮点规格化数定义尾数M应满足下面关系:(1)对于正数,无论尾数用原码表示还是用补码表示,尾数M都应大于等于1/2,小于1”,即1/2M-1,用二进制数表示为M=1.1(为0或1)。如果尾数用补码表示,-1/2M-1,用二进制数表示为M=1.0(为0或1)。本讲稿第五十页,共一百六十一页【例】1.将0.0011*20和-0.0011*20转换成规格化数解:0.0011*20=0.1100*2-2
20、 -0.0011补=1.1101*20=1.0100*2-22.将规格化数1 10000001 01000000000000000000000转换成十进制解:(-1*)1*(1+0.25)*2129-127=-1*1.25*4 =-5 (-1)s*1.f*2e-127本讲稿第五十一页,共一百六十一页最后,对定点数和浮点数可作出比较如下:(1)当浮点数和定点数的位数相同时,浮点数的表示范围要比定点数的范围大得多。(2)当浮点数表示为规格化数时,其精度也要比定点数高。本讲稿第五十二页,共一百六十一页(3)浮点数分成了阶码和尾数两个部分,二者都要参与运算,且运算结果要规格化。比起定点运算,浮点运算的
21、步骤更复杂,运算的速度也慢。本讲稿第五十三页,共一百六十一页(4)浮点数是通过对规格化数的阶码的判断来决定是否溢出的,而定点数是对其本身进行判断。如小数定点机中的数其绝对值必须小于1,否则即是溢出,此时要求机器停止运算,进行处理。而浮点数的表示范围远比定点数大,仅当“上溢”时机器才停止运算。本讲稿第五十四页,共一百六十一页总之,浮点数在数的表示范围、运算精度、溢出处理和程序编程方面均优于定点数。但在运算规则、运算速度及硬件成本等方面又不如定点数。因此,究竟选用定点数还是浮点数,应根据具体应用综合考虑。不过,现代的计算机通常是同时采用定点数和浮点数。本讲稿第五十五页,共一百六十一页实例:IEEE
22、754标准在目前常用的80 x86系列微型计算机中,通常设有支持浮点运算的部件。在这些机器中的浮点数采用IEEE754标准,它与前面介绍的浮点数格式有一些差别。按IEEE754标准,常用的浮点数的格式 ms Em尾符 阶码部分,用移码表示,尾数数值位部分,用原码表示本讲稿第五十六页,共一百六十一页表 IEEE 754 标准中的 3 种浮点数 偏 置 值类 型 数符 阶码 尾数数值 总位数 十六进制 十进制短浮点数 1 8 23 32 7FH127长浮点数 1 11 52 64 3FFH1023临时浮点数 1 15 64 80 3FFFH16383本讲稿第五十七页,共一百六十一页数的定点表示与浮
23、点表示Pentium处理器三种类型浮点数格式:参数 单精度浮点数 双精度浮点数 扩充精度浮点数 浮点数长度(字长)32 64 80 尾数长度P 23 52 64 符号位S位数1 1 1 指数E长度8 11 15 最大指数+127+1023+16383 最小指数-126-1022-16382 本讲稿第五十八页,共一百六十一页 IEEE754标准约定,符号位s用0表示正数,用1表示负数。尾数部分可以取任意的二进制数值f,这样,单精度数所表示的数值为:N=(-1)S*1.f*2e-127双精度数所表示的数值为:N=(-1)S*1.f*2e-1023例:将-0.75表示成单精度的IEEE754标准代码
24、。-0.75=-0.11*20=-1.1*2-1根据单精度的IEEE754标准公式:N=(-1)S*1.f*2e-127这个数可以表示为(-1)1*(1+0.10000000000000000000000)*2-1=(-1)1*(1+0.10000000000000000000000)*2126-127即 1 01111110 10000000000000000000000 本讲稿第五十九页,共一百六十一页【例】将(100.25)10转换成短浮点数格式。本讲稿第六十页,共一百六十一页【例】将(100.25)10转换成短浮点数格式。把十进制数转换成为二进制数(100.25)10=(1100100
25、.01)2规格化二进制数 1100100.01=1.10010001261111111+110=10000101以短浮点数格式存储该数阶码=10000101尾数=10010001000000000000000所以,短浮点数代码为 0;10000101;10010001000000000000000表示为十六进制的代码:42C88000H。本讲稿第六十一页,共一百六十一页【例】把短浮点数C1C90000H转换成为十进制数。本讲稿第六十二页,共一百六十一页【例】把短浮点数C1C90000H转换成为十进制数。因为,C1C90000H=11000001110010010000000000000000所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数制 编码 精选 文档
限制150内