收藏 分销(赏)

数制和编码PPT学习课件.ppt

上传人:天**** 文档编号:10014957 上传时间:2025-04-17 格式:PPT 页数:60 大小:2.59MB
下载 相关 举报
数制和编码PPT学习课件.ppt_第1页
第1页 / 共60页
数制和编码PPT学习课件.ppt_第2页
第2页 / 共60页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,章 计算机中的数制和编码,2.1 无符号数的表示及运算,2.2 带符号数的表示及运算,2.3 信息的编码,2.4 数的定点与浮点表示法,1,十进制,(,D,ecimal,),、二进制,(,B,inary),、,十六进制,(,H,exadeimal),数及其相互间的转换,十进制数:1 2 3.4 5,110,2,210,1,310,0,410,1,510,2,即 123.45=110,2,+210,1,+310,0,+410,1,+510,2,2.1 无符号数的表示及运算,.,2,二进制数:(逢二进一),1101.1B=,12,3,+12,2,+02,1,+12,1,+12,0,=8,+4,+0,+1,+0.5,=13.5,十六进制数:(逢十六进一),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,A5D.8H=,+516,1,+816,1,=2560,+80,+0.5,=2653.5,+1316,0,+13,16,2,10,3,二进制 十六进制,2,4,=16 4位二进制数共有下列16种组合:,0000、0001、0010、0011、1110、1111,由此可见,每位十六进制数可对应4位二进制数。,0000 0001 0010 0011 1110 1111,0 1 2 3 E F,4,十进制,十六进制,二进制,0,0,000,0,1,1,000,1,2,2,00,10,3,3,00,11,4,4,0,100,5,5,0,101,6,6,0,110,7,7,0,111,8,8,1000,9,9,1001,10,A,1010,11,B,1011,12,C,1100,13,D,1101,14,E,1110,15,F,1111,5,例,2-2,4,B,F,.,C,H,=,.,0,100,1011,1111,.,11,00,B,例,2-1,11,0101,1101,.,11,B,C,H,D,.,110,1010,1110,.,111,B,E,H,=,6,E,.,A,=,3,5,以小数点为界,向左(整数部分)每4位为一组,高位不足4位时补0;向右(小数部分)每4位为一组,低位不足4位时补0。然后分别用对应的十六进制数表示每组中的4位二进制数。,二进制数转换为十六进制数,:,十六进制数转换为二进制数:,直接将每位十六进制数写成其对应的4位二进制数。,6,例,2-3,1010,1110,B,.,89,=,=,A,E,H,=,10,16,1,+,14,16,0,=,174,5,9,H,=,101,1001,B,1010,1110,1111,B,=,A,E,F,H,=,10,16,2,+,14,16,1,+,15,=,2560,+,224,+,15,=2799,125=,7,D,H,=,111,1101,B,通过十六进制,二进制 十进制,(89 16=,(125 16=,5,9,),7,13,),7,机器数:最高位,0,表示正数,,1,表示负数。,0,0,0,1,0,0,1,0,表示真值,011 0101B,.,2.2 带符号数的表示及运算,例如,:,.,表示真值,+,001 0010B,.,1,0,0,1,0,0,1,0,表示真值,001 0010B=,18,.,1,0,1,1,0,1,0,1,机器数与真值,=,+,18,.,=,53,.,8,例 2-4,x,=,+,1010111,y,=,1010111,.,x,原,=,0,1010111,y,原,=,1,1010111,.,1.,原码,.,符号,位,绝对值,符号,位,绝对值,9,x,反,=,0,0110100,y,反,=,1,1001011,2.,反码,.,负数的反码为:,其原码中符号位不变,其余各位取反。,正数的反码与其原码相同。,例2-5,x,=,+,0110100,y,=,0110100,10,3.,补码,.,正数的补码与其原码相同,。,.,(,正数的原码、反码、补码均相同,),.,负数的补码为:其反码的最低位加,1。,.,例 2-6,x,=,+,0110100,y,=,0110100,x,补,=,0,0110100,y,反,=,1,1001011,y,补,=,1,1001100,11,例 2-6,x,=,+,0110100,y,=,0110100,x,补,=,0,0110100,y,反,=,1,1001011,y,补,=,1,1001100,符,号,位,各位取反,y,=,0 1 1 0 1 0 0,最末1及其,之后0不变,由负数的原码(或由真值)直接求其补码,:,.,y,补,=,1,1 0 0 1,1 0 0,12,92=7,(,减法,),补码的概念及其应用,设标准时间为,7,时正,,,钟面时间为,9,时正,。,(,快,2,小时,),校准时钟方法,:,(1),逆时针拨,2,小时,自然丢失,(2),顺时针拨,10,小时,9+10=,12,+7=7,(,加法,),称,“10”,是,“2”,对,模,“12”,的补(码),。,同理,1,补,=11、3,补,=9、11,补,=1,记为,2,补,=12+,(,2,),=10,(mod 12),13,在n位二进制整数系统中模为 2,n,。,补码的定义,即,式中,14,补码的加减运算,x,+,y,补,=,x,补,+,y,补,式中,x,、,y,可为正数或负数。,证明:,x,+,y,补,=2,n,+(,x,+,y,),=(2,n,+,x,)+(2,n,+,y,),=,x,补,+,y,补,(mod 2,n,),15,模12,8,自然丢失,在8位二进制整数系统中模为2,8,=256,.,例 2-7,x,=,4、,y,=,14,用补码求,x,+,y,。,x,补,=,000 0100,补,=1111 1100,y,补,=,000 1110,补,=1111 0010,1 1 1 1 1 1 0 0,+1 1 1 1 0 0 1 0,x,+,y,=,0 0 1 0 0 1 0B,1,1 1 1 0 1 1 1 0,x,+,y,补,=,18,解,16,例,2-8,x,=33,,y,=45,用补码分别求,x,+,y,、,x,y,。,解,x,=33=21H=010 0001B,y,补,=11010011,x,补,=00100001,y,补,=00101101,y,=45=2DH=010 1101B,00100001,+11010011,11110100,x,+,y,补,=01001110,00100001,+00101101,01001110,x,+,y,=+1001110B,x,y,补,=11110100,x,y,=0001100B,=+4EH=78,=,0CH=,12,17,从上述补码运算规则和举例可以看出,在计算机中用补码表示带符号数优点明显,且带符号数和无符号数的加法和减法运算可用同一加法器完成,结果都是正确的。例如:,机器运算,00010010,+11001110,11100000,代表无符号数,1 8,+2 0 6,2 2 4,代表带符号数,+18,补,+,50,补,32,补,18,+1.1 1 0 1 1 1 1,纯小数情况,.,例 2-9,x,=,0.1010101,,y,=,0.0010001,,用补码求,x,+,y,。,x,补,=1.0101011 ,y,补,=1.1101111,模12,1,=2自然丢失,.,1.0 1 0 1 0 1 1,1,1.0 0 1 1 0 1 0,x,+,y,=,0.1 1 0 0 1 1 0B,0.1010101,+),0.0010001,0.1100110,解,验算,结果正确,19,二进制数编码,对 应 十 进 制 真 值,无符号数,原码,反码,补码,0000 0000,0,+0,+0,+0,0000 0001,1,+1,+1,+1,0000 0010,2,+2,+2,+2,0111 1110,126,+126,+126,+126,0111 1111,127,+127,+127,+127,1000 0000,128,0,127,128,1000 0001,129,1,126,127,1000 0010,130,2,125,126,1111 1101,253,125,2,3,1111 1110,254,126,1,2,1111 1111,255,127,0,1,表2.1,8位二进制整数编码的各种表示方法对照,20,溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。例如,字长为,n,位的带符号数,它能表示的补码范围为2,n1,+2,n1,1,如果运算结果超出此范围,就叫补码溢出,简称溢出。,溢出及其判断方法,1.进位与溢出,进位是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围,。,21,即,在n位二进制整数系统中模为 2,n,。,补码的定义,式中,回阅,22,例 2-10,x,=+126、,y,=+5;,x,=,126、,y,=,5,,用8位补码计算,x,+,y,。,1 0 0 0 0 0 1 0,+1 1 1 1 1 0 1 1,0 1 1 1 1 1 0 1,x,+,y,补,=01111101,x,+,y,=+1111101B0,出错原因,:,1265=131128,0 1 1 1 1 1 1 0,+0 0 0 0 0 1 0 1,1 0 0 0 0 0 1 1,x,+,y,补,=10000011,x,+,y,=1111101B0,(,结果错误,),(,结果错误,),(,正溢出,),(,负溢出,),解,x,补,=01111110 ,x,补,=10000010,y,补,=00000101,y,补,=11111011,+126+5=+131+127,23,2.溢出的判断方法,.,通过比较参加运算的两个数的符号及运算结果的符号进行判断。,同号数据相加,若结果的符号相同则无溢出;若结果的符号不相同则溢出(如前例2-10)。,单符号位比较法,.,异号数据相加,结果不会发生溢出。,24,0 1 1 1 1 0 1 1,1 0 0 0 0 1 0 1,+,0 0 0 0 0 0 1 1,+,1 1 1 1 1 1 0 1,0 1 1 1 1 1 1 0,1 0 0 0 0 0 1 0,(,无溢出,结果正确,)(,无溢出,结果正确,),x,+,y,补,=01111110 ,x,+,y,补,=10000010,=+126 =126,x,+,y,=+1111110B,x,+,y,=1111110B,例 2-11,x,=+123、,y,=+3;,x,=123、,y,=3,,用8位补码计算,x,+,y,。,解,x,补,=01111011 ,x,补,=10000101,y,补,=00000011,y,补,=11111101,25,双进位法,.,通过符号位和数值部分最高位的进位状态来判断结果是否溢出。,C,7,CF,C,6,数值位,b,7,b,6,b,1,b,0,x,7,y,7,x,1,y,1,=,1,x,0,y,0,x,6,y,6,=,1,=,1,=,1,OF,=,1,方式控制,M,M=0,加,M=1,减,全加器,异或门,26,若最高位的进位状态和次高位的进位状态不同,则溢出;若最高位的进位状态和次高位的进位状态,相同则无溢出。,有进位:C,7,=1,C,6,=1,无进位:C,7,=0,C,6,=0,27,例,2-12,用补码求 55+66,并判断结果是否发生溢出。,解,55=37H=0110111B 66=42H=1000010B,55,补,=00110111 66,补,=01000010,0 0 1 1 0 1 1 1,+0 1 0 0 0 0 1 0,0 1 1 1 1 0 0 1,无溢出,结果正确。,55+66,补,=01111001,55+66=+1111001B=79H=121,28,例,2-13,用补码求14+(59),并判断结果是否发生溢出。,解,14=0001110B,59=3BH=0111011B,14,补,=11110010 59,补,=11000101,1 1 1 1 0 0 1 0,+1 1 0 0 0 1 0 1,1 0 1 1 0 1 1 1,、,、,1,无溢出,结果正确。,1459,补,=10110111,14+,(,59,),=1001001B,=49H=73,29,解,98=62H=1100010B 45=2DH=0101101B,98,补,=01100010 45,补,=00101101,有溢出,结果错误。,0 1 1 0 0 0 1 0,+0 0 1 0 1 1 0 1,1 0 0 0 1 1 1 1,、,例,2-14,用补码求98+45,并判断结果是否发生溢出。,30,解,93=5DH=1011101B,59=3BH=0111011B,93,补,=10100011 59,补,=11000101,1 0 1 0 0 0 1 1,+1 1 0 0 0 1 0 1,0 1 1 0 1 0 0 0,、,1,有溢出,结果错误。,例,2-15,用补码求93+(59),并判断结果是否发生溢出。,31,双符号位法(变形补码法),变形补码:正数的符号位用,00,表示;,负数的符号位用,11,表示。,若结果的双符号为,01,或,10,则溢出;,若结果的双符号为,00,或,11,则无溢出。,通过运算结果的两个符号位的状态来判断结果是否溢出:,32,0 0,1 1 1 1 1 1 0,+,0 0,0 0 0 0 1 0 1,0 1,0 0 0 0 0 1 1,(,正溢出,结果错误,),例,2-16 X=+126、Y=+5;X=126、Y=5,,用变形补码计算X+Y。,解,X,补,=,00,1111110 X,补,=,11,0000010,1 0,1 1 1 1 1 0 1,1 1,0 0 0 0 0 1 0,+,1 1,1 1 1 1 0 1 1,Y,补,=,00,0000101,Y,补,=,11,1111011,(,负溢出,结果错误,),33,Y,补,=,00,0000011,Y,补,=,11,1111101,0 0,1 1 1 1 0 1 1,+,0 0,0 0 0 0 0 1 1,0 0,1 1 1 1 1 1 0,(,无溢出,结果正确,),X+Y,补,=,00,1111110,X+Y=+1111110B,=+126,例,2-17 X=+123、Y=+3 X=123、Y=3,用变形补码计算X+Y。,解,X,补,=,00,1111011 X,补,=,11,0000101,1 1,0 0 0 0 1 0 1,+,1 1,1 1 1 1 1 0 1,1 1,0 0 0 0 0 1 0,(,无溢出,结果正确,),X+Y,补,=,11,0000010,X+Y=1111110B,=126,34,2.3 信 息 的 编 码,每位十进制数用8位二进制编码表示,其中高4,位为零。,二进制编码的十进制数(BCD码),1.压缩型BCD码,每位十进制数用4位二进制编码表示。,2.非压缩型BCD码,35,表2.2 8421 BCD码的部分编码,十进制数,压缩型BCD码,非压缩型BCD码,0,0000,0000,00000000,1,0000,000,1,00000001,2,0000,00,1,0,00000010,3,0000,0011,00000011,4,0000,0,1,00,00000100,5,0000,0101,00000101,6,0000,0110,00000110,7,0000,0111,00000111,8,0000,1,000,00001000,9,0000,1001,00001001,10,0001 0000,00000001 00000000,11,0001 0001,00000001 00000001,12,0001 0010,00000001 00000010,369,0000,0011 01101001,00000011 00000110 00001001,36,例,2-18 用BCD码求8+5。,解,0 0 0 0,1 0 0 0,加,6,调整,0 0 0 0,1 1 0 1,+,0 0 0 0,0 1 0 1,8+5=13,的,BCD,码,+,0 0 0 0,0 1 1 0,0 0 0 1 0 0 1 1,非法,BCD,码,(,结果,9),BCD码运算及其十进制调整,37,+,0 0 0 0,1 0 0 0,例,2-19 用BCD码求19+8。,解,0 0 0 1 1 0 0 1,、,产生了,“,逢,16”,进位,结果为,21,的,BCD,码,错误,.,0 0 1 0,0 0 0 1,加,6,调整,+,0 0 0 0,0 1 1 0,0 0 1 0 0 1 1 1,19+8=27,的,BCD,码,38,例,2-20 用BCD码求 57+65。,.,解,0101 0111,.,1011 1100,+0110 0101,+0110 0110,0000,0001 0010 0010,非法,BCD,码,加,66,调整,57+65=122,的,BCD,码,39,例2-21,用BCD码求128,解,0 0 0 1 0 0 1 0,0 0 0 0,1 0 0 0,减,6,调整,0 0 0 0,1 0 1 0,非法,BCD,码,、,产生了,“,借,1,当,16”,的借位,128=4,的,BCD,码,0 0 0 0,0 1 1 0,0 0 0 0,0 1 0 0,40,因此,两个BCD数进行运算时,首先按二进制数进行运算,然后必须用相应的调整指令进行调整,从而得到正确的BCD码结果。有关BCD运算结果的调整指令将在第4章“80 x86指令系统”中介绍。,如果两个对应位BCD数相加的结果向高位无进位,且结果小于或等于9,则该位不需要修正;若得到的结果大于9而小于16,则该位需要加6修正。,如果两个对应位BCD数相加的结果向高位有进位(结果大于或等于16),则该位需要进行加6修正。,41,现代计算机不仅用于处理数值领域的问题,而且要处理大量的非数值领域的问题。必然需要计算机能对数字、字母、文字以及其他一些符号进行识别和处理,而计算机只能处理二进制数,因此,通过输入/输出设备进行人机交换信息时使用的各种字符也必须按某种规则,用二进制数码0和1来编码。目前,国际上在微机、通信设备和仪器仪表中广泛使用的是ASCII码。,ASCII字符编码,字符:数字、字母以及其他一些符号的总称。,.,42,b,6,b,5,b,4,b,3,b,2,b,1,b,0,000,0,001,1,010,2,011,3,100,4,101,5,110,6,111,7,0000,0,NUL,DLE,SP,0,P,、,p,0001,1,SOH,DC1,!,1,A,Q,a,q,0010,2,STX,DC2,”,2,B,R,b,r,0011,3,ETX,DC3,#,3,C,S,c,s,0100,4,EOT,DC4,$,4,D,T,d,t,0101,5,ENQ,NAK,%,5,E,U,e,u,0110,6,ACK,SYN,&,6,F,V,f,v,0111,7,BEL,ETB,7,G,W,g,w,1000,8,BS,CAN,(,8,H,X,h,x,1001,9,HT,EM,),9,I,Y,i,y,1010,A,LF,SUB,*,:,J,Z,j,z,1011,B,VT,ESC,+,;,K,k,1100,C,FF,FS,,,N,n,1111,F,SI,US,/,?,O,o,DEL,表2.3 美国标准信息交换码,ASCII(7,位代码,),43,表中有关功能控制符解释如下,:,NUL(Null),空,SOH(Start Heading),标题开始,STX(Start of Text),文本开始,ETX(End of Text),文本结束,EOT(End of Trasmission),发送结束,ENQ(Enquiry),询问,BS(Back Space),退格,LF(Line Feed),换行,CR(Carriage Return),回车,SP(Space),空格,.,44,2.4 数的定点与浮点表示法,2.4.1 定点表示,.,纯整数形式,.,纯小数形式,.,符号位 数 值 位,.,小数点,(小数点隐藏,在机中不占位),.,小数点,符号位 数 值 位,小数点在数中的位置固定。,45,(2,n,1),x,2,n,1 (原码表示),2,n,x,2,n,1 (补码表示),设用一个,n,+1位字来表示一个数,x,,其中最高位表示符号位,其他,n,位为数值位。对于纯小数表示法,所能表示的数,x,的范围为:,(12,n,),x,12,n,(原码表示),1,x,12,n,(补码表示),对于纯整数表示法,所能表示的数,x,的范围为:,例见表2.1,46,二进制数编码,对 应 十 进 制 真 值,无符号数,原码,反码,补码,0000 0000,0,+0,+0,+0,0000 0001,1,+1,+1,+1,0000 0010,2,+2,+2,+2,0111 1110,126,+126,+126,+126,0111 1111,127,+127,+127,+127,1000 0000,128,0,127,128,1000 0001,129,1,126,127,1000 0010,130,2,125,126,1111 1101,253,125,2,3,1111 1110,254,126,1,2,1111 1111,255,127,0,1,表2.1 8位二进制整数编码的各种表示方法对照,47,(,IEEE754,),浮点数,48,背景,在,IEEE,标准,754,之前,业界并没有一个统一的浮点数标准,相反,很多计算机制造商都设计自己的浮点数规则,以及运算细节。那时,实现的速度和简易性比数字的精确性更受重视。,直到,1985,年,Intel,打算为其的,8086,微处理器引进一种浮点数协处理器的时候,聪明地意识到,作为设计芯片者的电子工程师和固体物理学家们,也许并不能通过数值分析来选择最合理的浮点数二进制格式。,Intel,在请加州大学伯克利分校的,William Kahan,教授来为,8087 FPU,设计浮点数格式,;,而这个家伙又找来两个专家来协助他,于是就有了,KCS,组合(,Kahn,Coonan,and Stone,)。,他们共同完成了,Intel,的浮点数格式设计,而且完成地如此出色,以致于,IEEE,组织决定采用一个非常接近,KCS,的方案作为,IEEE,的标准浮点格式。,目前,几乎所有计算机都支持该标准,大大改善了科学应用程序的可移植性。,49,表示形式,浮点数也是一串,0,和,1,构成的位序列,(bit sequence),。,IEEE,标准从逻辑上用三元组,S,E,M,表示一个数,N,n,s,e,m,分别为,N,S,E,M,对应的实际数值,而,N,S,E,M,仅仅是一串二进制位,S(sign),表示,N,的符号位。对应值,s,满足:,n0,时,,s=0;n0,时,,s=1,。,E(exponent),表示,N,的指数位,位于,S,和,M,之间的若干位。对应值,e,值也可正可负。,M(mantissa),表示,N,的尾数位,恰好,它位于,N,末尾。,M,也叫有效数字位(,sinificand,)、系数位(,coefficient,),甚至被称作,“,小数,”,。,50,浮点数格式,IEEE,标准,754,规定了三种浮点数格式:,单精度、,双精度、,扩展精度。,前两者正好对应,C,语言里头的,float,、,double,或者,FORTRAN,里头的,real,、,double,精度类型。,单精度,:N,共,32,位,其中,S,占,1,位,,E,占,8,位,,M,占,23,位。,双精度,:N,共,64,位,其中,S,占,1,位,,E,占,11,位,,M,占,52,位。,51,浮点数格式,M,虽然是,23,位或者,52,位,但它们只是表示小数点之后的二进制位数,,假定,M,为,“010110011.”,在二进制数值上其实是,“.010110011.”,。,标准规定小数点左边还有一个隐含位,这个隐含位绝大多数情况下是,1,。,那什么情况下是,0,呢?答案是,N,对应的,n,非常小的时候,比如小于,2,-126,(32,位单精度浮点数,),。,隐含位算是赚来了一位精度,于是,M,对应的,m,最后结果可能是,m=1.010110011.”,或者,“m=0.010110011.”,52,规格化(normalized)”“非规格化(denormalized),1,、规格化:,当,E,的二进制位不全为,0,也不全为,1,时,,N,为规格化形式。此时,e,被解释为表示偏置(,biased,)形式的整数。,e,值计算公式:,|E|,表示,E,的二进制序列表示的整数值,例如,E,为,10000100,则,|E|=132,e=132-127=5,。,k,则表示,E,的位数,对单精度来说,,k=8,则,bias=127,,对双精度来说,,k=11,则,bias=1023,。,53,规格化(normalized)”“非规格化(denormalized),非规格化:,当,E,的二进制位全部为,0,时,,N,为非规格化形式。此时,e,,,m,的计算都非常简单。,此时小数点左侧的隐含位为,0,。为什么,e,会等于,(1-bias),而不是,(-bias),,这主要是为规格化数值、非规格化数值之间的平滑过渡设计的。,有了非规格化形式,我们就可以表示,0,了。把符号位,S,值,1,其余所有位均置,0,后,我们得到了,-0.0;,同理,把所有位均置,0,则得到,+0.0,。非规格化数还有其他用途,比如表示非常接近,0,的小数,而且这些小数均匀地接近,0,称为,“,逐渐下溢,(gradually underflow),”,属性。,54,规格化(normalized)”“非规格化(denormalized),3,、特殊数值:,当,E,的二进制位全为,1,时为特殊数值。此时,若,M,的二进制位全为,0,,则,n,表示无穷大,若,S,为,1,则为负无穷大,若,S,为,0,则为正无穷大,;,若,M,的二进制位不全为,0,时,表示,NaN(Not a Number),,表示这不是一个合法实数或无穷,或者该数未经初始化。,55,范例,我们假定,N,是一个,8,位浮点数,其中,,S,占,1,位,,E,占,4,位,,M,占,3,位。,56,范例分析,看,N,列,二进制位表示是均匀递增的,且增量都是一个最小二进制位。,观察最大的非规格数,发现恰好就是,M,全为,1,E,全为,0,的情况。于是我们求出最大的非规格数为:,公式中,,h,为,M,的位数,(,如范例中为,3),。注意,公式等号右边的第一项同时又是最小规格数的值(如范例中为,8/512,),;,第二项则正是最小非规格数的值,(,如范例中为,1/512),即该浮点数能表示的最小正数。,看,m,列,规格化数都是,1+x,的形式,这个,1,正是隐含位,1;,而非规格化数隐含位为,0,所以没有,1+,。,看,n,列,非规格化数从上到下的增量都是,1/512,且过渡到规格化数时,增量是平滑的,依旧是,1/512,。,这正是非规格化数中,e,等于,(1-bias),而不是,(-bias),的缘故,也是巧妙设计的结果。,再继续往下看,发现增量值逐渐增大。可见,浮点数的取值范围不是均匀的。,57,浮点数加减运算,设两个浮点数,X=M,x,*2,E,x,,,Y=M,y,*2,E,y,实现,X,Y,要用如下,5,步完成:,对阶操作:小阶向大阶看齐;,进行尾数加减运算;,规格化处理:尾数进行运算的结果必须变成规格化的浮点数,对于双符号位(就是使用,00,表示正数,,11,表示负数,,01,表示上溢出,,10,表示下溢出)的补码尾数来说,就必须是,001,或,110,的形式,若不符合上述形式要进行左规或右规处理。,舍入操作:在执行对阶或右规操作时常用,“,0,”,舍,“,1,”,入法将右移出去的尾数数值进行舍入,以确保精度。,判结果的正确性:即检查阶码是否溢出,若阶码下溢(移码表示是,00,0,),要置结果为机器,0,;,若阶码上溢(超过了阶码表示的最大值)置溢出标志。,58,浮点数加减法实例,例题:假定,X=0.0110011*2,11,,,Y=0.1101101*2,-10,(此处的数均为二进制),计算,X+Y,;,首先,我们要把这两个数变成,2,进制表示,对于浮点数来说,阶码通常用移码表示,而尾数通常用补码表示。要注意的是,-10,的移码是,00110,X,浮,:,0,1 010,1100110,Y,浮,:,0,0 110,1101101,符号位 阶码,尾数,(,1,)求阶差:,E=|1010-0110|=0100,;,(,2,)对阶:,Y,的阶码小,,Y,的尾数右移,4,位,Y,浮,变为,0 1 010 0000110 1101,暂时保存,(,3,)尾数相加,采用双符号位的补码运算,00 1100110,+00 0000110,00 1101100,(,4,)规格化:满足规格化要求,(,5,)舍入处理,采用,0,舍,1,入法处理,故最终运算结果的浮点数格式为:,0 1 010 1101101,即,X+Y=+0.1101101*2,10,59,浮点数乘除法运算,(,1,)阶码运算:阶码求和(乘法)或阶码求差(除法),即,Ex+Ey,移,=Ex,移,+Ey,补,Ex-Ey,移,=Ex,移,+,-Ey,补,(,2,)浮点数的尾数处理:浮点数中尾数乘除法运算结果要进行舍入处理,例题:,X=0.0110011*2,11,,,Y=0.1101101*2,-10,求,X*Y,解:,X,浮,:,0 1010 1100110,Y,浮,:,0 0110 11011011,)阶码相加,Ex+Ey,移,=Ex,移,+Ey,补,=1010+1110=1000,1 000,为移码表示的,0,2,)原码尾数相乘的结果为:,0 10101101101110,3,)规格化处理:已满足规格化要求,不需左规,尾数不变,阶码不变。,4,)舍入处理:按舍入规则,加,1,进行修正所以,X,Y=0.1010111*2,0,60,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服