已知:x= 0.10101,y = -0.01110, 求:[ 12 x]补,[ 14 x]补,[-x]补,[ 12 y]补,[ 14 y]补,[-y]补,x+ y,x- y。(加减运算 使用双符号位判断是否有溢出)
时间: 2024-01-08 20:02:50 浏览: 170
我们先把 x 和 y 转换成十进制数:
x = 0.10101(二进制)= 0.65625(十进制)
y = -0.01110(二进制)= -0.28125(十进制)
然后按照补码的定义,可以得到:
[ 12 x]补 = [ 12 x]原 = [ 12 × 0.65625]原 = 7.875(十进制)
[ 14 x]补 = [ 14 x]原 = [ 14 × 0.65625]原 = 9.1875(十进制)
[-x]补 = 补码(-0.65625)= 11111111 11111111 11111111 11111111 11111111 11111000 01011011 10000001(二进制)= [1.01000110101110000010]补 = -0.65625(十进制)
[ 12 y]补 = [ 12 y]原 = [ 12 × (-0.28125)]原 = -3.375(十进制)
[ 14 y]补 = [ 14 y]原 = [ 14 × (-0.28125)]原 = -3.9375(十进制)
[-y]补 = 补码(0.28125)= 00000000 00000000 00000000 00000000 00000000 00000111 10100100 01111110(二进制)= [0.10111011110000001110]补 = 0.71875(十进制)
接下来进行加减运算:
x + y = 0.65625 - 0.28125 = 0.375(十进制)
对于 x + y 的结果,符号位为 0,没有溢出。
x - y = 0.65625 - (-0.28125) = 0.9375(十进制)
对于 x - y 的结果,符号位为 0,没有溢出。
因此,[ 12 x]补 = 7.875,[ 14 x]补 = 9.1875,[-x]补 = -0.65625,[ 12 y]补 = -3.375,[ 14 y]补 = -3.9375,[-y]补 = 0.71875,x + y = 0.375,x - y = 0.9375。
阅读全文