当我写:
signed int a = 4;
我的计算机使用 2 的表示法吗?
因为如果我的计算机使用 2 的补码表示法来表示数字 4,这就是在 8 位机器上会发生的情况:
二进制值 4:0000 0100
2的补码变为:1111 1011
添加1:1111 1100
但我读到,当最高有效位为 1 时,您的数字为负数。但这里我的最高有效位是 1 ,我的数字是 4 。它不是-4。
为什么我的数字 4 的最高有效位是 1?
最佳答案
2’s complement become: 1111 1011
没有。你从哪里得到这个想法的? 1111 1011 是二进制补码的-5
。 -5
不是 +4
。
-4
也与 +4
不同。
4
的二进制值为 0000 0100。因此,4
的有符号数字变量表示形式也是 0000 0100。
除非数字为负数,否则二进制补码无关紧要。
why my number 4 has a 1 as the most significant bit?
事实并非如此。您的 -4
的 MSB 为 1。
关于c - 2 的补码表示法也用于正数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40342001/