32 bit 负整数

Binary (base 2)
Decimal (base 10)
Hexadecimal (base 16)

说明

同一个数,其负数和正数相加的结果要为 0,比如数字 7,-7 + 7 = 0,所以 -7 = 0 - 7,用二进制表示就是 -7 = 0000 - 0111 =1001 。

另一方面,7 的二进制表示 0111,0111 的反码是 1000,补码(反码+1)是 1001,所以 -7 的二进制表示是 1001,和上面的结果完全一致。

从 CPU 的角度看,在 8 bit 数据中,对于一个二进制数 11111001,它可以表示十进制正整数 249,也可以表示十进制负整数 -7, CPU 在运算的时候不管它是正数还是负数,运算结果总是对的。

有符号负整数编码示例
十进制 二进制 十六进制
-2147483648 10000000 00000000 00000000 00000000 80000000
-1073741824 11000000 00000000 00000000 00000000 C0000000
-536870912 11100000 00000000 00000000 00000000 E0000000
-268435456 11110000 00000000 00000000 00000000 F0000000
-134217728 11111000 00000000 00000000 00000000 F8000000
-67108864 11111100 00000000 00000000 00000000 FC000000
-33554432 11111110 00000000 00000000 00000000 FE000000
-16777216 11111111 00000000 00000000 00000000 FF000000
-8388608 11111111 10000000 00000000 00000000 FF800000
-4194304 11111111 11000000 00000000 00000000 FFC00000
-2097152 11111111 11100000 00000000 00000000 FFE00000
-1048576 11111111 11110000 00000000 00000000 FFF00000
-524288 11111111 11111000 00000000 00000000 FFF80000
-262144 11111111 11111100 00000000 00000000 FFFC0000
-131072 11111111 11111110 00000000 00000000 FFFE0000
-65536 11111111 11111111 00000000 00000000 FFFF0000
-32768 11111111 11111111 10000000 00000000 FFFF8000
-16384 11111111 11111111 11000000 00000000 FFFFC000
-8192 11111111 11111111 11100000 00000000 FFFFE000
-4096 11111111 11111111 11110000 00000000 FFFFF000
-2048 11111111 11111111 11111000 00000000 FFFFF800
-1024 11111111 11111111 11111100 00000000 FFFFFC00
-512 11111111 11111111 11111110 00000000 FFFFFE00
-256 11111111 11111111 11111111 00000000 FFFFFF00
-128 11111111 11111111 11111111 10000000 FFFFFF80
-64 11111111 11111111 11111111 11000000 FFFFFFC0
-32 11111111 11111111 11111111 11100000 FFFFFFE0
-16 11111111 11111111 11111111 11110000 FFFFFFF0
-8 11111111 11111111 11111111 11111000 FFFFFFF8
-4 11111111 11111111 11111111 11111100 FFFFFFFC
-2 11111111 11111111 11111111 11111110 FFFFFFFE
-1 11111111 11111111 11111111 11111111 FFFF FFFF