求补码对应的真值,直接转换就可以,不用绕到原码反码。
----------------------------
97H = 1001 0111:-128 + 16 + 4 + 2 + 1 =-105。
80H = 1000 0000:-128 + 0 = -128。
9350H = 1001 0011 0101 0000:
-32768 + 4096 + 512 + 256 + 64 + 16 =-27824。
CF42H = 1100 1111 0100 0010:
-32768 + 16384 + 2048 + 1024 + 512 + 256 + 64 + 2
=-12478。
----------------------------
记住:首位 1,既是负号,也是数值。所以,它就是个“负值”。
然后,各位求和,就可以了。
就这么简单!
补码和真值,可以直接互相转换。和原码反码,没有任何关系。
[x1]补 =97H =1001 0111B
[x1]反 =1001 0110B
[x1]原 =1110 1001B
x1 = -110 1001B = -69H = -105D
.
[x2]补 =80H =1000 0000B
x2 = -1000 0000B = -80H = -128D
.
[x3]补 =9350H =1001 0011 0101 0000B
[x3]反 =1001 0011 0100 1111B
[x3]原 =1110 1100 1011 0000B
x3 = -110 1100 1011 0000B = -6CB0H = -27827D
.
[x4]补 =CF42H =1100 1111 0100 0010B
[x4]反 =1100 1111 0100 0001B
[x4]原 =1011 0000 1011 1110B
x4 = -011 0000 1011 1110B = -30BEH = -12478D