浮点数加减时要求对阶,尾数要求右移,什么是右移,是指小数点右移,还是将0.1变为0.01称为尾数右移

Clnzbqll |浏览5954次
收藏|2020/01/21 13:07

满意回答

2020/01/21 13:15

一、对阶1、求补码[x]补=00,01;00.1101,[y]补=00,11;11.0110;2、求阶差小阶向大阶对阶,同时尾数右移,移动位数为阶差。00.11-00.01=00.10=2,故阶差为2,故[x]’补=00,11;00.0011二、尾数求和将对阶后的两个尾数安定点加减运算规则进行运算。上述对阶后得:[x]’补=00,11;00.0011;[y]补=00,11;11.0110;则[Sx+Sy]补=00.0011+11.0110=11.1001。故[x+y]补=00,11;11.1001。三、规格化:(1)左规尾数出现00.0xx…x或11.1xx…x时需要进行左规,左规时尾数左移一位,阶码减一,直到成为:00.1xx…x或11.0xx…x。一句话就是尾数第一位和符号位相同。如上例求和结果为:[x+y]补=00,11;11.1001;故将其尾数左移一位,阶码减1得:00,10;11.0010;规格化后这是补码,求其尾数的原码即可,故结果为x+y=(-0.1110)*2+10(2)右规当尾数出现01.xx…x或10.xx…x时表示尾数溢出,需要进行右归,右归时尾数右移,阶码加1.例:已知浮点数x=0.1101x210,y=0.1011x201,求x+y1、对阶2、尾数求和3、尾数求和求和结果为 [x+y]补=00,10;01.0010;故需要进行右规,尾数向右移动一位,阶码加1得:[x+y]补=00,11;00.1001;则x+y=0.1001x211四、舍入(1)"0舍1入"法"0舍1入"法类似与十进制的四舍五入法,即在尾数右移时,被移去的最高数值位为0,则舍去;被移去的最高数值位位1,则在尾数的末位加1,这样做可能使得尾数又溢出,此时需再做一次右规。(2)"恒置1"法尾数右移是不论丢掉得最高数值位是1或0,都使右移后得尾数末尾位恒置1。例:设x=x-101x(-0.101000),y=2-100x(+0.111011),并假设阶符取2位,阶码得数值部分取3位,数符取2位,尾数得数值部分取6位,求x-y;解: 由题可得:[x]补=11,011;11.011000,[y]补=11,100;00.111011;1、对阶11,100-11,011=00.001=1。故x得尾数右移1位,阶码加1,即[x]补=11,100;11.1011002、求和[Sx]补- [Sy]补= [Sx]补+ [-Sy]补=11.101100+11.000101=10.110001注意:Sy=>-Sy;连同符号位取反,末尾加1。尾数符合位出现10,需要右规3、规格化尾数右移,阶码加1,右规后得[x-y]补=11,101;11.011000 14、舍入处理采用0舍1入法,其尾数右规时末位丢1,再+1,得:[x-y]补=11,101;11.011001

360U33454083

其他回答(0)
0人关注该问题
+1

 加载中...