补码求真值怎么算?

如题所述

补码是这样计算的:\r\n首位为符号位。\r\n符号位为0表示正数,正数的补码=原码=反码。\r\n符号位为1表示负数,负数的补码等于将符号位后面的位全部取反再加1。另外,一个数的补码的补码等于这个数的原码,所以如果已知一个数的补码,那么对这个补码求一次补码即可得到这个数的原码。\r\n\r\n前面已经说了,负数的补码等于符号位后面的位全部取反再加1,所以11010101取反(符号位不变)为10101010,再加1,得到10101011,此即为原真值的原码,由此很容易得到真值为:\r\n\r\n-(32+8+2+1)= -43
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-11-25

你就直接进行【数 制 转 换】即可。

要注意:首位是负数。

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

已知补码是:1101 0101。

首位 1,既代表负号,也代表-128。

数值位之和:64 + 16 + 4 + 1 = +85。

加在一起,就是真值:-43。

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

另一个补码是:0101 0101。

首位 0,就是代表 0。

数值位之和:64 + 16 + 4 + 1 = +85。

加在一起,就是真值:0 + 85 = +85。

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

由补码求真值,十分简便。

并不用琢磨“原码反码取反加一符号位不变”。

老外算术不灵,才需要弄哪些骚操作。

相似回答