说明
同一个数,其负数和正数相加的结果要为 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 在运算的时候不管它是正数还是负数,运算结果总是对的。
有符号负整数编码示例 (64 bit)
十进制
十进制
二进制 (第一位是符号位)
十六进制
-2^63
-9223372036854775808
10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0x8000000000000000
-2^62
-4611686018427387904
11000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xC000000000000000
-2^61
-2305843009213693952
11100000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xE000000000000000
-2^60
-1152921504606846976
11110000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xF000000000000000
-2^59
-576460752303423488
11111000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xF800000000000000
-2^58
-288230376151711744
11111100 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xFC00000000000000
-2^57
-144115188075855872
11111110 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xFE00000000000000
-2^56
-72057594037927936
11111111 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0xFF00000000000000
-2^55
-36028797018963968
11111111 10000000 00000000 00000000 00000000 00000000 00000000 00000000
0xFF80000000000000
-2^54
-18014398509481984
11111111 11000000 00000000 00000000 00000000 00000000 00000000 00000000
0xFFC0000000000000
-2^53
-9007199254740992
11111111 11100000 00000000 00000000 00000000 00000000 00000000 00000000
0xFFE0000000000000
-2^52
-4503599627370496
11111111 11110000 00000000 00000000 00000000 00000000 00000000 00000000
0xFFF0000000000000
-2^51
-2251799813685248
11111111 11111000 00000000 00000000 00000000 00000000 00000000 00000000
0xFFF8000000000000
-2^50
-1125899906842624
11111111 11111100 00000000 00000000 00000000 00000000 00000000 00000000
0xFFFC000000000000
-2^49
-562949953421312
11111111 11111110 00000000 00000000 00000000 00000000 00000000 00000000
0xFFFE000000000000
-2^48
-281474976710656
11111111 11111111 00000000 00000000 00000000 00000000 00000000 00000000
0xFFFF000000000000
-2^47
-140737488355328
11111111 11111111 10000000 00000000 00000000 00000000 00000000 00000000
0xFFFF800000000000
-2^46
-70368744177664
11111111 11111111 11000000 00000000 00000000 00000000 00000000 00000000
0xFFFFC00000000000
-2^45
-35184372088832
11111111 11111111 11100000 00000000 00000000 00000000 00000000 00000000
0xFFFFE00000000000
-2^44
-17592186044416
11111111 11111111 11110000 00000000 00000000 00000000 00000000 00000000
0xFFFFF00000000000
-2^43
-8796093022208
11111111 11111111 11111000 00000000 00000000 00000000 00000000 00000000
0xFFFFF80000000000
-2^42
-4398046511104
11111111 11111111 11111100 00000000 00000000 00000000 00000000 00000000
0xFFFFFC0000000000
-2^41
-2199023255552
11111111 11111111 11111110 00000000 00000000 00000000 00000000 00000000
0xFFFFFE0000000000
-2^40
-1099511627776
11111111 11111111 11111111 00000000 00000000 00000000 00000000 00000000
0xFFFFFF0000000000
-2^39
-549755813888
11111111 11111111 11111111 10000000 00000000 00000000 00000000 00000000
0xFFFFFF8000000000
-2^38
-274877906944
11111111 11111111 11111111 11000000 00000000 00000000 00000000 00000000
0xFFFFFFC000000000
-2^37
-137438953472
11111111 11111111 11111111 11100000 00000000 00000000 00000000 00000000
0xFFFFFFE000000000
-2^36
-68719476736
11111111 11111111 11111111 11110000 00000000 00000000 00000000 00000000
0xFFFFFFF000000000
-2^35
-34359738368
11111111 11111111 11111111 11111000 00000000 00000000 00000000 00000000
0xFFFFFFF800000000
-2^34
-17179869184
11111111 11111111 11111111 11111100 00000000 00000000 00000000 00000000
0xFFFFFFFC00000000
-2^33
-8589934592
11111111 11111111 11111111 11111110 00000000 00000000 00000000 00000000
0xFFFFFFFE00000000
-2^32
-4294967296
11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000000
0xFFFFFFFF00000000
-2^31
-2147483648
11111111 11111111 11111111 11111111 10000000 00000000 00000000 00000000
0xFFFFFFFF80000000
-2^30
-1073741824
11111111 11111111 11111111 11111111 11000000 00000000 00000000 00000000
0xFFFFFFFFC0000000
-2^29
-536870912
11111111 11111111 11111111 11111111 11100000 00000000 00000000 00000000
0xFFFFFFFFE0000000
-2^28
-268435456
11111111 11111111 11111111 11111111 11110000 00000000 00000000 00000000
0xFFFFFFFFF0000000
-2^27
-134217728
11111111 11111111 11111111 11111111 11111000 00000000 00000000 00000000
0xFFFFFFFFF8000000
-2^26
-67108864
11111111 11111111 11111111 11111111 11111100 00000000 00000000 00000000
0xFFFFFFFFFC000000
-2^25
-33554432
11111111 11111111 11111111 11111111 11111110 00000000 00000000 00000000
0xFFFFFFFFFE000000
-2^24
-16777216
11111111 11111111 11111111 11111111 11111111 00000000 00000000 00000000
0xFFFFFFFFFF000000
-2^23
-8388608
11111111 11111111 11111111 11111111 11111111 10000000 00000000 00000000
0xFFFFFFFFFF800000
-2^22
-4194304
11111111 11111111 11111111 11111111 11111111 11000000 00000000 00000000
0xFFFFFFFFFFC00000
-2^21
-2097152
11111111 11111111 11111111 11111111 11111111 11100000 00000000 00000000
0xFFFFFFFFFFE00000
-2^20
-1048576
11111111 11111111 11111111 11111111 11111111 11110000 00000000 00000000
0xFFFFFFFFFFF00000
-2^19
-524288
11111111 11111111 11111111 11111111 11111111 11111000 00000000 00000000
0xFFFFFFFFFFF80000
-2^18
-262144
11111111 11111111 11111111 11111111 11111111 11111100 00000000 00000000
0xFFFFFFFFFFFC0000
-2^17
-131072
11111111 11111111 11111111 11111111 11111111 11111110 00000000 00000000
0xFFFFFFFFFFFE0000
-2^16
-65536
11111111 11111111 11111111 11111111 11111111 11111111 00000000 00000000
0xFFFFFFFFFFFF0000
-2^15
-32768
11111111 11111111 11111111 11111111 11111111 11111111 10000000 00000000
0xFFFFFFFFFFFF8000
-2^14
-16384
11111111 11111111 11111111 11111111 11111111 11111111 11000000 00000000
0xFFFFFFFFFFFFC000
-2^13
-8192
11111111 11111111 11111111 11111111 11111111 11111111 11100000 00000000
0xFFFFFFFFFFFFE000
-2^12
-4096
11111111 11111111 11111111 11111111 11111111 11111111 11110000 00000000
0xFFFFFFFFFFFFF000
-2^11
-2048
11111111 11111111 11111111 11111111 11111111 11111111 11111000 00000000
0xFFFFFFFFFFFFF800
-2^10
-1024
11111111 11111111 11111111 11111111 11111111 11111111 11111100 00000000
0xFFFFFFFFFFFFFC00
-2^9
-512
11111111 11111111 11111111 11111111 11111111 11111111 11111110 00000000
0xFFFFFFFFFFFFFE00
-2^8
-256
11111111 11111111 11111111 11111111 11111111 11111111 11111111 00000000
0xFFFFFFFFFFFFFF00
-2^7
-128
11111111 11111111 11111111 11111111 11111111 11111111 11111111 10000000
0xFFFFFFFFFFFFFF80
-2^6
-64
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11000000
0xFFFFFFFFFFFFFFC0
-2^5
-32
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11100000
0xFFFFFFFFFFFFFFE0
-2^4
-16
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11110000
0xFFFFFFFFFFFFFFF0
-2^3
-8
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111000
0xFFFFFFFFFFFFFFF8
-2^2
-4
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111100
0xFFFFFFFFFFFFFFFC
-2^1
-2
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111110
0xFFFFFFFFFFFFFFFE
-2^0
-1
11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
0xFFFFFFFFFFFFFFFF