1补码和运算是什么运算啊……怎么算?

2025-01-05 13:16:37
推荐回答(3个)
回答1:

你参考

设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。
(1)A=9/64, B=-13/32, 求A+B;
(2)A=19/32,B=-17/128,求A-B;
(3)A=-3/16,B=9/32, 求A+B;
(4)A=-87, B=53, 求A-B;
(5)A=115, B=-24, 求A+B。

解:
(1)A=9/64=(0.001 0010)2 B= -13/32=(-0.011 0100)2 [A]补=0.001 0010 [B]补=1.100 1100
[A+B]补= 0. 0 0 1 0 0 1 0 + 1. 1 0 0 1 1 0 0 1. 1 0 1 1 1 1 0 ——无溢出
A+B=( -0.010 0010)2 = -17/64

(2)A=19/32=(0.100 1100)2 B= -17/128=(-0.001 0001)2 [A]补=0.100 1100 [B]补=1.110 1111 [-B]补=0.001 0001 [A-B]补= 0. 1 0 0 1 1 0 0 + 0. 0 0 1 0 0 0 1 0. 1 0 1 1 1 0 1 ——无溢出 A-B=(0.101 1101)2 = 93/128
(3)A= -3/16=(-0.001 1000)2 B=9/32=(0.010 0100)2 [A]补=1.110 1000 [B]补= 0.010 0100 [A+B]补= 1. 1 1 0 1 0 0 0 + 0. 0 1 0 0 1 0 0 0. 0 0 0 1 1 0 0 —— 无溢出 A+B=(0.000 1100)2 = 3/32
(4)A= -87=(-101 0111)2 B=53=(110 101)2 [A]补=1,010 1001 [B]补=0,011 0101 [-B]补=1,100 1011
[A-B]补= 1,0 1 0 1 0 0 1 + 1,1 0 0 1 0 1 1 0,1 1 1 0 1 0 0 —— 溢出 A-B=(-1,000 1100)2 = -140
(5)A=115=(111 0011)2 B= -24=(-11 000)2 [A]补=0,111 0011 [B]补=1,110 1000 [A+B]补= 0,1 1 1 0 0 1 1 + 1,1 1 0 1 0 0 0 0,1 0 1 1 0 1 1——无溢出 A+B=(101 1011)2 = 91

回答2:

补码和运算,和普通二进制的运算方法,完全相同。

回答3:

-0.01111-0.00101=????
此题没有溢出!
因为:
-0.01111补码:1.10001
-0.00101补码:1.11011
相加:
1.10001+1.11011=1.01100
1.01100原码:-0.10100
只有当减数与被减数的符号相反,但是结果与减数符号相同时,才产生溢出