当我写的时候:

signed int a = 4;


我的计算机使用2的表示形式吗?

因为如果我的计算机使用2的补码表示形式来表示数字4,则这将在8位计算机上发生:

二进制值4:0000 0100

2的补码变成:1111 1011

加1:1111 1100

但我读到,当最高位是1时,您的数字为负数。但在这里,我最重要的位数是1,我的位数是4。它不是-4。

为什么我的数字4的最高有效位为1?

最佳答案

2的补码变成:1111 1011


否。您是从哪里得到这个主意的? 1111 1011是-5的补码。 -5不是+4

-4+4也不相同。

4的二进制值为00000100。因此4的带符号数字变量表示形式也为0000 0100。

除非数字为负,否则二进制补码无关紧要。


  为什么我的数字4的最高有效位为1?


没有。您的-4的msb为1。

关于c - 2的补码表示形式是否也用于正数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40342001/

10-13 08:06