数据表示和运算方法.ppt

上传人:牧羊曲112 文档编号:6578969 上传时间:2023-11-14 格式:PPT 页数:96 大小:866KB
返回 下载 相关 举报
数据表示和运算方法.ppt_第1页
第1页 / 共96页
数据表示和运算方法.ppt_第2页
第2页 / 共96页
数据表示和运算方法.ppt_第3页
第3页 / 共96页
数据表示和运算方法.ppt_第4页
第4页 / 共96页
数据表示和运算方法.ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《数据表示和运算方法.ppt》由会员分享,可在线阅读,更多相关《数据表示和运算方法.ppt(96页珍藏版)》请在三一办公上搜索。

1、第1讲 数制与数制转换,第2讲 定点数表示与编码,2 数据表示与运算方法,第3讲 浮点数表示与编码,第4讲 常用信息编码,第5讲 数据校验码,主要内容,2.1.1 数制,数制也称进位计数制,是用一组固定符号和一套统一规则表示数值的方法。,一个任意进制数可由以下通式表示:,式中,i为位序号,Di为i位上的符号,r为基数,ri为第i位上的该单位所代表的权值,Diri为第i位上所代表的实际值,为对m+k各位实际值的累加求和。,数制与数制转换,十进制(D),=123+122+021+120+12-1+02-2+12-3,(123.456)10,=1102+2101+3100+410-1+510-2+6

2、10-3,二进制(B),(1101.101)2,=13.625,符号D=09,基数r=10,权=10n,逢十进一,符号D=0,1,基数r=2,权=2n,逢二进一,数制与数制转换,2.1 计算机数据,逻辑数据:无符号二进制数据,执行与、或、非、异或运算。,数值数据:带符号二进制数据,执行加、减、乘、除、函数运算。,文本数据:由语言文字和符号字符组成的字信息。,图形数据:静态画面信息,包括图形和图像。,多媒体数据:动态画面信息,包括声音、视频、动画等。,十六进制(H),(3AB.48)16,=(939.28125)10,=3162+10161+11160+416-1+816-2,符号D=09,AF

3、,基数r=16,权=16n,逢十六进一,数制与数制转换,=182+281+380+48-1+58-2,八进制(Q),(123.45)8,=(83.3125)10,符号D=07,基数r=8,权=8n,逢八进一,权值,计算机中的数字电路具有两种不同的稳定状态且能相互转换,即“0”和“1”两种状态。计算机处理的一切信息均用二进制数表示,但是二进制数书写起来太长,所以计算机中的二进制数都采用十六进制来缩写。十六进制数用09、AF等16个数码表示十进制数015。为了区别十进制数、二进制数及十六进制数3种数制,在数的后面加一个字母以进行区别。用B(binary)表示二进制数制;D(decimal)或不带字

4、母表示十进制数制;H(hexadecimal)表示十六进制数制。例:100 100B 100BH 0FFH,2.1.2 数制转换,=123+120+12-1+12-3,(1001.101)2,=(9.625)10,按权展开,累加求和,1.任意进制转十进制,=8+1+0.5+0.125,数制与数制转换,=482+581+680+18-1+28-2+48-3,(456.124)8,=256+40+6+0.125+0.03125+0.0078125,=(302.1640625)10,=3163+2162+C161+F160+416-1+816-2,(32CF.48)16,=1288+512+192+

5、15+0.25+0.03125,=(13007.28125)10,数制与数制转换,20 21 22 23 24 25 26 27 28 29 1 2 4 8 16 32 64 128 256 512210 211 212 213 219 1K 2K 4K 8K 512K220 221 222 223 229 1M 2M 4M 8M 512M2301G1K=1024 16K=65536 1M=1048576,一个十进制数的小数点向右移动一位,相当于该数乘以10,向左移动一位,相当于该数除以10。或者说如果小数点不动,该数串左移一位,该数的数值乘以10,右移一位,该数的数值除以10。例如:123.

6、45=12.345*10同理,一个定点二进制整数或定点二进制小数左移一位,该数的数值乘以2,右移一位,该数的数值除以2。例如:11001011./210=1100101.1(除2取余)0.1110111*210=1.1101110(乘2取整)把一个十进制整数除以2,相当于对应的二进制数末位移到了小数点右手边,末位既除以2的余数,(45.27)10,=()2,(1725.6875)10,=(3275.54)8,整数部分,小数部分,101101.,010001,数制与数制转换 整数部分小数部分分开处理,整数部分除基取余,小数部分乘基取整,2.十进制转任意进制,可能转换完,结果为0;也可能转换不完,

7、结果永不为0,位数满足要求为止。,(12345.671875)10=()16,3039.,整数部分,小数部分,AC,数制与数制转换,数制与数制转换,(10 011 100.01)2=()8,0,0,以小数点为基准,分别向左、向右按三位一组,不足3位加0补足,234.2,三对一,四对一,3.二进制与八/十六进制转换,(1001 1100.01)2=()16,00,以小数点为基准,分别向左、右按四位一组,不足4位加0补足,9C.4,整数位数不足,不影响结果。小位数不足,不补足会出错,影响结果,熟记2、10、16进制数之间的关系,8421权 0000 0001 0010 0011 0100 0101

8、 0110 0111 1000 1001 0 1 2 3 4 5 6 7 8 9 1011 1100 1101 1110 1111 A B C D E F 10 11 12 13 14 15,请熟记,1K=210=1024=400H=100 0000 0000B(11 位,10个0)01023=03FFH=011 1111 1111B(10位)64K=216=65536=10000H=1 0000 0000 0000 0000B065535=00FFFFH=1111 1111 1111 1111B(16位)1M=220=1048576=100000H=10000 0000 0000 0000

9、0000B(21位,20个0),数制与数制转换,4.数制转换图,按2n展开,累加求和,除 2取余,乘 2取整,按8n展开,累加求和,16n展开,累加求和,3位对 1位,4位对 1位,1位对 3位,1位对 4位,10转2,2转10是最重要的,要熟练掌握。10转8,10转16,要先10转2,2再转8或16,2.2 定点数表示,设n+1位字表示任意一个定点数 x=xnxn-1x2x1x0,xs为符号位(0为正,1为负),则定点数可表示为:,若x纯整数,小数点位于x0之后。,0|x|2n-1,定点整数,定点数,设n+1=8,则其定点整数的表示范围:,定点数是指约定机器中所有数据的小数点位置固定不变。定

10、点数分为定点整数和定点小数。,定点数与编码,则定点整数的表示范围为:,=-1111111+1111111=-(27-1)+(27-1)-127127,若x=纯小数,小数点位于xs、xn之间。当各位均为0时,x的绝对值最小,即|x|min=0;当各位均为1时,x的绝对值最大,即|x|max=1-2-n。,定点小数,0|x|1-2-n,设n+1=8,则其定点小数的表示范围:,设字长32位,求定点整数和定点小数所表示的最大正数、最小负数。,=-0.1111111+0.1111111=-(1-0.0000001)+(1-0.0000001)=-(1-2-7)+(1-2-7),解:定点整数最大正数为+(

11、231-1),最小负数为-(231-1);定点小数最大正数为+(1-2-31)+1,最小负数为-(1-2-31)-1,定点数与编码,则定点小数的表示范围为:,1.机器数与真值机器数:机器中数的表示形式,它将数的正、负符号和数值部分一起进行二进制编码,其位数通常为8的整数倍。真值:机器数所代表的实际数值的正负和大小,是人们习惯表示的数。2。数的单位位(bit):一个二进制数中的1位,其值不是1便0。字节(Byte):一个字节,就是一个8位的二进制数。字(Word):两个字节,就是一个16位的二进制数。双字:两个字,即四个字节,一个32位二进制数。只有8位、16位或32位机器数的最高位才是符号位。

12、,计算机中数的几个概念,定点小数,0.1111111111-1=2-1+2-2+2-3+2-4+2-5+=1/2+1/4+1/8+1/16+1/32+=0.5+0.25+0.125+0.0625+0.03125+0.015625+=1-1/2n只要定点小数的位数足够多,就能十分逼近任何小数,规定误差后可以容忍。,计算机中的机器数分为有符号数和无符号数:有符号数:机器数的最高位为符号位,符号位为“0”表 示正数,符号位为“1”表示负数。无符号数:机器数的最高位没有符号意义,只有数值 意义(只表达0和正数)。8位无符号数的表示范围为 0255(000000B11111111B),既00H0FFH

13、16位无符号数的表示范围为065535(0000000000000000B 1111111111111111B),既0000H)FFFFH,机器整数是带符号数还是无符号数,由程序员决定。机器数-对带符号数的符号数字化后的机内表示。规定符号位0为正,1为负,放在最高位。例如:真值为-4,机器数可以表示为 1000 0100(无符号数132)。带符号数做+-*/运算时,符号位和数值位同等看待,一起输入硬件加法器,加法器不区别符号位,把它看做正常数值位,按加法规则运算。机器数(定点整数,定点小数,浮点数),真值,无符号(整)数11001010.11001010.0.1110010 011011 11

14、0010101-35 35H,定点数在计算机中的编码称为机器数或机器码,而其表示的实际值为真值。机器数分为定点小数和定点整数。,由定义求原码:X 0.10110-0.10110 0.0000 X原,原码(定点小数为例,定义好表达),最高位为符号位,其余数值位由数值的绝对值表示。,2.2.1 定点数编码,0 10110,1 10110,00000/10000,编码是采用一组符号和一套相应组合规则来表示信息。,定点数与编码,机器数编码方案包括:原码、反码、补码、移码。,(-负=+正),符号位为最高位,其余数值位由负数值按位取反。,反码,由定义求反码:X 0.10110-0.10110 0.0000

15、 X反,0 10110,1 01001,0 0000/1 1111,符号位为最高位,其余数值位由数值按2取摸(求补)。,补码,由定义求补码:X 0.10110-0.10110 0.0000 X补,0 10110,1 01010,0 0000,定点数与编码,解:x1=+78=+4EH=01001110B x1原=0 1001110 x1反=0 1001110 x1补=0 1001110 x2=-78=-4EH=-01001110B x2原=1 1001110 x2反=1 0110001 x2补=1 0110010,机器数编码方案特点,原码的最高位为符号位,其余为数的绝对值。,正数反码、补码与正数

16、原码相同,即x反=x补=x原。,负数反码符号位为1,数值位为原码按位取反。负数补码 符号位为1,数值位为原码按位取反,再加1。,已知真值x1=+78,x2=-78,求x原、x反、x补。,定点数与编码,定点整数编码与定点小数编码基本相同。,原码、反码零的表示有两个零(正零和负零)。补码零的表示只有一个零(正零)。,原码、反码表示范围为:+(2n-1)-(2n-1),原码,反码,定点整数表示范围,已知x补=1 1101110,求-x补、x反、x原及X。,定点数与编码,2.4 定点数表示范围,定点数与编码,补码表示范围为:+(2n-1)-(2n),补码,解:原码、反码表示范围为:+(27-1)-(2

17、7-1)=+127-127;补码表示范围为:+(27-1)-(27)=+127-128。,设字长为8位,求定点整数原码、反码、补码的表示范围。,原码、反码表示范围为:+(1-2-n)-(1-2-n),原码,反码,定点小数表示范围,补码表示范围为:+(1-2-n)-1,补码,定点数与编码,设字长为32位,采用补码定点小数表示,符号位为1位,数值位为31位。则可表示的最大正数为(1-2-31),最小负数为-1。2的补码(模=2)表示 为2*符号位(模)+数的真值,变形补码用于产生双符号位,便于溢出的判断。,变形补码(双符号位摸4补码),超出给定表示范围(因),计算结果出错(果)。双符号位:00,1

18、1 不溢出 10,01 溢出,溢出,8位定点整数:无符号数可表示 0255,补码可表示-128+12716位定点整数:无符号数可表示 065535,补码可表示-32768+3276716位定点小数和8位定点小数补码都能表示-1+0.999.,只是16位定点小数比8位定点小数字长更长,表达一个小数时误差更小。,补码 常规求补码法 正数的补码与原码相同;负数补码为其反码加1。例:求 8位补码机器数:X1=+4:X1原=X1反=X1补=00000100=04HX2=-4:X2原=10000100 X2反=11111011 X2补=X2 反+1=1111100=FCH 8位补码数的数值范围为-1281

19、27(80H7FH)。16位补码数的数值范围为-3276832767(8000H7FFFH)。字节80H和字8000H的真值分别是-128(-80H)和-32768(-8000H)。补码数80H和8000H的最高位既代表了 符号为负,又代表了数值为1。,快速求补码法:将负数原码的最前面的1和最后一个1之间的每一位取反。例如x=4:x原=10000100 x补=11111100=FCH 模-X求补码 两数互补是针对一定的“模”而言,“模”即计数系统的过量程回零值,例如时钟以12为模(12点也称0点),4和8互补,一位十进制数3和7互补(因为3710,个位回零,模为10110),两位十进制数35和

20、65互补(因为3567100,十进制数两位回零,模为102100),而对于8位二进制数,模为28100000000B=100H,同理16位二进制数,模为21610000H,由此得出求补的通用方法:一个数的补数模该数,这里补数是对任意的数而言,包括正、负数。而补码是针对符号机器数而言。,设有原码机器数X,X0 则 X补=X原;X0 则 X补=模-例如对八位二进制数:X1=+4:X1补=00000100=04H;X2=-4:X2补=100H-4=FCH对于16二进制位数:X2=+4:X2补=0004H;X2=-4:X2补=10000H-4=FFFCH,原码适合做乘除法(同号取正,异号取负,绝对值相

21、乘除),在只有一个硬件加法器时,补码可以把减法变成加法,故补码适合做加减法。减去一个数,等于加上这个数的相反数,要求一个数的相反数,只要把这个数连同符号位求反加一。,-10-9-8-7-6-5-4-3-2-1 0 1 2 3-2-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23,3+(-5)=3+(20-5)=3+15=18=-2 19+1=0=20-1+1=0,-5的补码,考虑一个以20为模的系统,无符号数表达019,将1019平移到原点左侧,以20为模的补码,可以表达-10+9这里,19=-1,18=-2,17=

22、-3,几点说明:根据两数互为补的原理,对补码求补码就可以得到其原码,将原码的符号位变为正、负号,即是它的真值.例如求补码数FAH的真值。因为FAH为负数,求补码 FAH补86H=-6,所以补码数FAH的真值为-6.例如求补码数78H的真值。因为78H为正数求补码 78H补78H=+120 78H的真值为120 一个用补码表示的机器数,若最高位为0,则其余几位即为此数的绝对值;若最高位为1,其余几位不是此数的绝对值,必须把该数求补(按位取反(包括符号位)加1),才得到它的绝对值。如:X=-15-15补F1H11110001B 求补得00001110100001111B=15,当数采用补码表示时,

23、就可以把减法转换为加法。例1:64-10=64+(-10)=5464补=40H=0100 0000B10补=0AH=0000 1010B-10补=1111 0110B做减法运算过程:用补码相加过程 结果相同,其真值为36H(=54)。由于数的八位限制,最高位的进位是自然丢失的(再计算机中。进位被存放在进位标志CY中的。)用补码表示后,减法均可以用补码相加完成。因此,在微机中,凡是符号数一律是用补码表示的。用加法器完成加、减运算,用加法器和移位寄存器完成乘、除运算,简化计算机硬件结构。,大家要会,熟练掌握10转2,2转10。整数除2取余,小数乘2取整。10转8或10转16,要先10转2,再2转8

24、或16知真值求补码:正数照写;负数先变正,10转2,再连同符号位求反加1。-4 4,00000100,11111100 知补码求真值:正数照写;负数先连同符号位求反加1 变正,2转10,再加上负号。11111100,00000100,4,-4 两补码相加,无论正负,直接加就可以。结果为补码。加完后要判断溢出 两补码相减,先把减数连同符号位求反加1,再相加。运算完后要判断溢出,定点补码加减运算,判断溢出方法,加减运算算法,正数加正数得负数,或负数加负数得正数。,对于单符号位,数值位有向符号位进位,但符号位不产生向更高位的进位;数值位无向符号位的进位,但符号位已产生向更高位的进位。,X+Y补=X补

25、+Y补,加法,减法,对于双符号位(模4补码),值=01为正溢,值=10为负溢。,补码加减法,求X补的相反数-X补,连同符号位求反加一。溢出:超出8位补码表示范围-128+127 100+100=+200(-100)+(-100)=-200 80h 81h ffh 0 1 7fh 80h ffh-128-127-1 0 1 100+127 200 255正+正=负 负+负=正数值位向符号位有进位,但符号位没有进位 数值位向符号位没有进位,但符号位有进位3.双符号位为01或10,例3 10550155 10569H 5032H 若把结果视为无符号数,为155,结果正确。若结果视为补码,结果为-10

26、1,这显然是错误的。其原因是和数155大于8位符号数所能表示的补码数的最大值127,使数值部分占据了符号位的位置,产生了溢出,又如:-105-50=-155 CY=1 两个负数相加,和应为负数,而结果01100101B却为正数,显然错误。其原因是和数-155小于8位符号数所能表示的补码数的最小值-128,也产生了溢出。结论:当两个补码数相加结果超出补码表示范围,就会产生溢出,导致结果错误。,2.数值位向符号位有进位,但符号位没有进位 数值位向符号位没有进位,但符号位有进位3.双符号位为01或10 00 1000001 65 11 0000001-127+00 1100000 96+11 000

27、0010-126 01 0100001 161127 10 0000011-253-128带符号数异号相加,不溢出。同号相加,可能溢出,也可能不溢出。带符号数同号相减(实际上是异号相加),不溢出。异号相减,可能溢出,也可能不溢出。,两个无符号数相加,没有溢出的概念,但可能有进位。两个8位数相加结果可能是9位,要在加法器硬件中设一个进位位Cy(1 bit)保存进位。做多字长无符号数或补码加法时,从右到左,第一次加低位用ADD指令做普通加,或清除Cy 用ADDC带进位加。之后用ADDC带进位加,将上一次加低位时可能产生的进位(Cy是0或1)一同加进去。补码运算后的结果为补码,需再次求补才能得到运算

28、结果的真值。,两个数相减,可能有借位(如果有,说明A-B不够减有借位,AB;,例:34-68=34+(-68)-3434=22H=0010 0010B68=44H=0100 0100B-68补=1011 1100B做减运算过程:用补码相加过程:结果相同。因为符号位为1,求补得其真值:-00100010B,即为-34=-22H。由上面两个例子还可以看出,用补码相加完成两数相减,相减若无借位,化为补码相加就会有进位;相减若有借位,34-68,化作补码相加就不会有进位,故减法指令借位位的形成实际是由硬件自动执行微指令:1)减数求补;2)补码相加;3)进位位求反 产生的,程序员拿减法指令来直接用就好,

29、但机制要了解。,例4 74744AH+4AH 0 1 0 0 1 0 1 0 0 01 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 CY CY-1=0 1=1.有溢出 OV1 CY CY-1 无进位 CY=0 由上两例中,例3的 OV=1、CY=1,例4中OV=1、CY=0,可见溢出和进位并非有必然的联系,这是由于两者产生的原因是不同的,两者判断的方法也是是不同的。重述如下:溢出OV:两个补码数相加结果超出补码表示范围而产生,OV=CY CY-1 进位CY:当运算结果超出计算机位数的限制(8位、16位),会产生进位,它是由最高位计算产生的,在加法中表现为进位,在减法中表现为借位

30、。,补码符号位的扩展,用 x补 求 x/2补,符号位不变,符号位连同数值位右移一次,余数抛弃。x补=10011 x/2补=11001 1不同字长数相加,字长短的数符号位向左扩展,直到与长数的符号位对齐。1001001111000011 1001001111000011+1111111111000011+00000000011011118位字节,-1=FFH;扩展成 16位字,-1=FFFFH,符号位也从第7位移动到第15位。,小结,计算机中,所有的信息(数或各种代码)都以二进制数的形式存放Intel规定,带符号整数一律以补码表示数或各种代码的计算一律以二进制数的规则运算,符号位也参与运算。加法

31、运算的结果超出计算机字长的限制(8或16、32位时)就会由最高位产生进位,减法会产生借位,存放在CY中。计算机只识别0和1,至于是带符号数还是无符号数,完全由程序员决定。还有BCD码,ASCII码等,计算机不去识别,只按无符号数正常运算处理,这一点很重要。例如0FFH,带符号数补码代表-1,无符号数代表255。又如32H,ASCII码为字符2,10进制为50,BCD码为32,生活中人们习惯于十进制数,计算机只能识别二进制数,为了将十进制数变为二进制数,出现了BCD码,即二进制代码表示的十进制数。它既是逢十进一,又是一组二进制码。用4位二进制数编码表示1位十进制数称为压缩的BCD码,8位二进制数

32、可以放2个十进制数位。也可以用8位二进制数表示1个十进制数位,这种BCD码称为非压缩的BCD码。十进制数和BCD码的对照表见表,2.2.2 二-十进制数编码,在计算机中,十进制数一般采用二进制数表示十进制数的编码称为BCD码。最常用的是8421码。,表示十进制数位的4位二进制码的每一位有确定的权。,表示十进制数位的4位二进制码的每一位没有确定的权。,有权码,无权码,定点数与编码,非压缩BCD码是一个字节存放1个十进制数位或符号位。应用时需给出该数在主存中起始地址和位数(串长)。,非压缩与压缩BCD码,压缩BCD码是一个字节存放2个十进制数位。应用时也需给出该数在主存中起始地址和位数(串长)。该

33、表示方法可节省存储空间。如99的BCD码可表示为:,在计算机中,BCD码有两种不同表示形式:,非压缩BCD码,压缩BCD码,9的BCD码可表示为:,99的BCD码可表示为:,BCD码运算应该得到BCD码结果,希望够十就进一,但由于计算机是按二进制运算,结果4位够16才进1,被吃掉了6,因此要对运算结果进行十进制调整。调整方法为:当计算结果有非BCD码(AF)或产生进位/借位时,加法进行+6、减法进行-6 调整运算。例:计算BCD码 78+69=?0111 1000 78H+0110 1001+69H 1110 0001 E1H不调整,结果为二进制+0110 0110+66H调整高4位产生非BC

34、D码+6 1 0100 0111 147 低4位有半进位+6调整结果:147(带进位一起)为十进制结果,例:计算BCD码 38-29=?0011 1000 38H-0010 1001-29H 0000 1111 0FH-0000 0110-06 低4位有半借位,-6调整 高4位未产生非 BCD且无借位 0000 1001 9 结果:9在计算机中,有专门的调整指令完成调整操作。,2.3 浮点数表示,浮点数,电子质量用浮点数可表示为:910-28,0.910-27,0.0910-26;太阳质量用浮点数可表示为21033,0.21034,0.021035。小数点每左移1位,为保证数值不变,比例因子的

35、指数加 1。也可以小数点不动,尾数右移1位,指数加1来实现。,N=(-1)S M RE,式中,S为浮点数符号(0为正,1为负);M为浮点数尾数(定点小数);R为比例因子的基数;E为浮点数阶码(定点整数)。,浮点数是指约定机器中所有数据的小数点位置可在一定范围内自由浮动。,在计算机中,任意进制浮点数N的编码 形式为:,浮点数编码,浮点数,浮点数格式,尾数数值有效部分为定点小数,位数决定了数值精度。阶码小数点左右移动的位数为定点整数,位数决定了表示范围。,在计算机中,二进制浮点数格式可表示为:,符号(1位)阶码(m位)尾数(n位),浮点数 1位符号 m位阶码 n位尾数。,浮点数,浮点数,IEEE7

36、54标准明确规定了浮点数所使用的位数、规格化以及隐藏位数等方案。,IEEE754标准,浮点数规格化,IEEE754标准规定:23位、52位的尾数采用规格化原码表示;8位、11位的阶码通常用移码表示。,移码是用整数形式表示浮点数阶码的方法。对于n+1位的整数,移码由1位符号位和n位数据位组成。,移码定义,2n X 2n,X移=2n+X,移码,移码计算方法,移码表示范围,一、直接利用定义计算;二、求补码后将符号位取反。,浮点数,解:方法1 X1移=24+0111=10000+0111=1 0111 X2移=24+(-0101)=10000-0101=0 1011,方法2 X1补=0 0111,X1

37、移=1 0111 X2补=1 1011,X2移=0 1011,当n=4时,计算X1=+0111和X2=-0101的移码。,移码与补码数值相同,但符号相反:1为正,0为负。,移码属性,移码仅用于表示浮点数阶码(整数),便于比较两个阶码的大小。,移码仅执行减运算,可加快比较运算速度。(够减被减数大),移码零的表示仅有一个:0移10000,有利于简化判零电路。,浮点数,绝对值最大的正数为:23(1-2-4)=230.1111111.1=7.5 01111111绝对值最小的正数为:2-40.0001=2-8=1/256 00000001绝对值最大的负数为:-23(1-2-4)=-230.1111-11

38、1.1=-7.5 11111111绝对值最小的负数为:-2-40.0001=-2-8=-1/256 10000001,设字长为8位的浮点数,阶码用3位移码(-4+3)、尾数用5位原码表示(含符号位),求该浮点数能表示的绝对值最大、最小(正数和负数)的数值。,浮点数,阶码:0 1 2 3 4 5 6 7真值:-4-3-2-1 0 1 2 3,(-1)s(1+剩余尾数f)2移码形式阶码值e-127,浮点数IEEE格式,IEEE754标准规定:m=8的规格化短浮点数采用移127移码方案;m=11的规格化长浮点数采用移1023移码方案。这是对移128移码方案的修正。,在移127移码编码方案中,移码形式

39、阶码值:e实际阶码值+127;实际阶码值移码形式阶码值e-127。,IEEE标准规格化短浮点数实际值可表示为:,式中,S为浮点数符号,0正、1负;1为隐藏位上的值;剩余尾数f为去除隐藏位的尾数;移码形式阶码值e-127为阶码的实际真值,在-126+127 之间。(1254)-127,浮点数,规格化,尾数左移一位将最高位的1移走隐藏起来(短实数、长实数使用隐藏位技术,临时浮点数不用)非0尾数小数点后最高位为1阶码减1 8位移码,27+X 称移128方案,机器数在数轴上右移了128 隐藏位技术,小数点又向右移动一次,阶码的偏置128再减1,为此,移码选用27-1=127 方案。IEEE754标准规

40、格化短浮点数为:(-1)s1.f 2e-127 阶码范围1254 阶码全0,尾数全0,浮点数的0值 阶码全1(255),尾数全0,正负无穷大,解:-0.75 10=-0.112=-1.12-12=(-1)1 1.1 2 1+127=(-1)1 1+0.10000000000000000000000 2126,将十进制数-0.75表示为短浮点数IEEE754标准代码。,S=1,移码形式阶码值e=126=0111 1110,剩余尾数10000000000000000000000(共24位,隐藏1位),IEEE754标准表示的-0.75为:1 01111110 1000000000000000000

41、0000,8位,23位,1位,浮点数,真值 128移码:真值+128(1000 0000B)(80H)(正数较方便)真值 变补,再符号位变反(负数较方便)真值 隐藏位 127移码:真值+127(0111 1111B)(7FH)(正数较方便)真值变反,再符号位变反(负数较方便)隐藏位127移码 真值:移码-127(0111 1111B)(7FH)移码+1000 0001B(81H)(-127的补码),将十进制数100.25转换为短浮点数IEEE754格式。,解:100.25 10=1100100.01 2=1.1001000126 2=(-1)01.1001001 26+127=(-1)0 1+

42、0.10010001000000000000000 2110+1111111=(-1)0 1+0.10010001000000000000000 210000101,S=0,移码形式阶码值e=10000101,剩余尾数10010001000000000000000,短浮点数IEEE754标准代码为:0 10000101 10010001000000000000000,浮点数,计算IEEE754格式为C1C90000H的短浮点数实际值。,s=1,移码形式阶码值e=1000 0011,尾数 10010010000000000000000,实际阶码真值 移码形式阶码值e-127(1000 0011)

43、2-(01111111)2(100)2=4 移码减:把减数移码看做8位正补码,01111111求反加一,10000001,再相加10000011+10000001=100,解:C1C90000 H 1100 0001 1100 1001 0000 0000 0000 0000 B 1 10000011 10010010000000000000000,规格化浮点数-1.1001001 24 浮点数实际值(-11001.001)2=(-25.125)10,浮点数,规格化是指非0值浮点数尾数必须满足1/2|M|1:小数点后的最高位数必须为1。一般需将非规格化的浮点数变成规格化的浮点数。,规格化,1.

44、尾数的符号位仍用 1 表示负数,阶码则用移码,符号位为1表示正数2.阶码全0,尾数不全0,非规格化数,不用隐藏位技术3.阶码全0,尾数全0,浮点数的0值4.阶码全1,尾数全0,正负无穷大5.阶码全1,尾数不全0,非法数据,浮点数,隐藏位技术是将规格化浮点数的尾数全部左移一位,并将规格化浮点数尾数的最高位1 移走并隐藏起来,这样可有效提高1个二进制位的表示精度。,计算机系统中的信息,一般由数据(数据编码与运算)和指令(指令编码与执行)构成。,2.4.1 西文字符编码,在计算机中,西文字母、数字和符号一般采用二进制编码来表示。常用字符编码方案有:ASCII码和EBCDIC码。,7位编码的ASCII

45、码(美国信息交换标准代码)一般用于微型机和小型机。ASCII码可表示128个字符,由最高位为0的1个字节表示。基本ASCII码包括两:显示字符95个和控制字符33个。,ASCII码,EBCDIC码(扩展的二-十进制交换码)采用8位编码,主要用于IBM大型机。,EBCDIC码,信息编码,ASCII字符编码表,信息编码,字符”4”,可以用34H表示,也可以用4表示,此时,它只有符号的意义,而无数量的概念,美国标准信息交换码ASCII码,用8位二进制编码表示字符,用于计算机与计算机、计算机与外设之间传递信息,每一个符号都有对应的ASCII码,常用数字和字母ASCII码如表1-3所列.在程序中,字符可

46、用ASCII码表示,也可以用加引号的字符表示,例如,字符“IF AB THEN READ(C)”按从高位到低位字节依 次存放在主存中,主存字由4个字节组成,每个字节存放相应字符的ASCII码:49H,46H,20H,A=a=0=LF=CR=SP=,字符串,字符串是连续存放在主存中的一串字符。存放模式是以字为基本单元,一个字由若干个字节组成。每个字节存放一个字符,一个主存字的多个字节,可按从低位到高位字节次序存放,也可按从高位到低位字节次序存放。,41H,61H,30H,20H,0DH,0AH,信息编码,2.4.2 汉字编码,输入码用于使用西文标准键盘将汉字输入计算机。编码方案有:音码、形码、数

47、字码(区位)和混合码(音形、自然)等。,国标码用于不同计算机系统之间的信息交换。国标码字符集GB 2312-80收集了7445个字符。其中常用汉字6763个,非汉字字符682个。国标码中的汉字和字符组成94行/94列的二维矩阵:每一行称为一个区,每一列称为一个位。,机内码用于汉字信息的存储、交换和检索等操作的机内代码。一般采用2个字节表示。为区分英文字符,汉字内码中2个字节的最高位均规定为1,与国标码的最高位相反。,输入码,国标码,机内码,信息编码,简易型:1616,32字节/汉字 普通型:2424,72字节/汉字 提高型:3232,128字节/汉字,若汉字“中”的国标码为5650H,则其机内

48、码应为多少?,4.3 多媒体信息编码,字形码,字形码也称字模码,用于显示或打印输出的汉字字形代码。汉字字形代码可由不同规模的字模点阵表示:,解:汉字“中”的国标码 5650H=01010110 01010000B,其内码为:11010110 11010000B=D6D0H。,一个汉字从输入到输出,可看作是输入码转换为国标码、再转换为机内码,最后转换为字形码的过程:,信息编码,2.5 数据校验码,检错与纠错技术,为提高计算机可靠性,除采用可靠性更高的器件和更好的生产工艺等措施外,可对数据编码进行处理:采用冗余线路,在原有数据位之外增加1到几位校验位,使新得到的校验码(码字)带上某种特性,并通过检

49、查该码字是否仍保持这一特性来发现是否出错。甚至在错误定位后自动改正错误。,码距指任意两个合法码之间至少有几个二进制位不同。仅有一位不同则称其码距为1。例如,1000与1001的码距为1,而1011与1000的码距则为2。合理地增加编码的码距可以提高检错能力。,码距,数据校验码,2.4.3 多媒体信息的编码,图像图形编码声音编码视频编码,检错方法,若对应关系符合则表示无误,反之则有错。,发送端在发送校验码。,接收端接收到校验码与约定的编码规则进行比较。,校验码是一种能发现错误或可自动纠错的数据编码方法。基本原理:在有效信息码中附加校验位构成校验码。通过根据约定的编码规则得到的检查结果与校验码是否

50、一致(合法性)以确定是否有错。,校验码,2.5 数据校验码,奇偶校验码是一种码距2的最简单的1位数据校验码。可以检测出1位错误或奇数个位错误,但不能确定错误位置,也不能检测出偶数个位错误。实现简单、成本低。,奇偶校验码的码字由若干有效数据位外加一位校验位组成。若码字的某位出错则此码必为非法编码。,编码方案,当数据位中有奇数个 1时编码为 0(奇校验码);当数据位中有偶数个 1时编码为 0(偶校验码)。,基本原理,奇偶校验码常用于存储器读写检查、ASCII码字符及其他类型信息传送过程中的出错检查。,数据校验码,编码方法:设有效数据位为8位D8 D1,发送时由编码电路生成1位校验位。偶校验编码方程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号