已知x和y,用变形补码计算x-y,同时指出运算结果是否溢出。
2022-09-28 · 百度认证:北京惠企网络技术有限公司官方账号
1、x=+0.11011,y=-0.11111:
-y=+0.11111
[x]补=00.11100
[-y]补=00.11111
[x-y]补=01.11011,双符号位为01,结果为正数,正溢出(上溢)。
运算结果:x-y=+1.11011
2、x=+0.10111 ,y=+0.11011:
-y=-0.11010
[x]原=11.11101,[x]反=11.00010,[x]补=11.00011
[-y]原=11.11010,[-y]反=11.00101,[-y]补=11.00110
[x]补=11.00011,[x-y]补=10.01001
最高符号位进位自然丢失,双符号位为10,结果为负数,负溢出(下溢)。
运算结果:x-y=-1.10111
扩展资料:
变形补码运算溢出判断方法:
1、用Xf和Yf表示被加数和加数补码的符号位,Zf为补码和的符号位。当出现Xf = Yf= 0两数同为正,而Zf为负,即Zf=1时,有上溢。当出现Xf =Yf = 1两数同为负,而Zf为正,即Zf= 0时,有下溢。
2、当数值最高位有进位位C1=1,符号位没有进位C0=0时,或当数值最高位没有进位位C1=0,符号位有进位C0=1时,结果有溢出。
3、用变形补码进行双符号位运算。在变形补码中,正数符号以"00"表示,负数的符号以"11"表示。一般称左边的符号位为第一符号位,右边的符号位为第二符号位。若运算结果的符号位为"01",则表明有正溢出产生。若运算结果的符号"10",则表明有负溢出产生。