用十进制数写出下列补码表示的机器数的真值 97H 80H 9350H CF42H 求过程

2025-01-19 22:04:50
推荐回答(2个)
回答1:

求补码对应的真值,直接转换就可以,不用绕到原码反码。

----------------------------

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,既是负号,也是数值。所以,它就是个“负值”。

然后,各位求和,就可以了。

就这么简单!

补码和真值,可以直接互相转换。和原码反码,没有任何关系。


回答2:

[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