计算机浮点数运算

已知:x=0.1011,y=-0.0101,求:[(1/2)*x]补、[(1/4)*x]补、[-x]补、[(1/2)*y]补、[(1/4)*y]补,[-y]补,怎么算??????????
最新回答
Dreams°終遇妳

2024-10-02 00:18:58

[(1/2)*x]补,由于是2进制,1/2就是缩小一倍,即右移一位,(1/2)*x=0.0101(1) 因为是正数,补码等于原码即[(1/2)*x]原=[(1/2)*x]补=00101(1),同理,1/4就是右移两位,(1/4)*x=0.0010(11),[(1/4)*x]补=00010(11)。而[-x]即符号位取反,再求补码,
-x=-0.1011,[-x]补根据负数求补码的原则,连符号位取反最后加一:1 0100+1=1 0101,
即[-x]补=10101,也可以是[x]补再进行一次取反加1操作得到,[x]补=01011,连符号位取反
加1=10101=[-x]补。
至于[(1/2)*y]补、[(1/4)*y]补,只要将y先分别右移一位和两位得到-0.0010(1),-0.0001(10),再求它们的补码(负数取反加1)得到[(1/2)*y]补=11110,[(1/4)*y]补=11111
至于[-y]补,同理[-x]补,-y=0.0101变成了正数,[x]原=[x]补=00101,也可以是[y]补=11011取反加1得到

(括号内的数值是移位后溢出的数字)