当我写的时候:
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/