已知:二进制任意一个比特位上的数(0
或1
)和自身按位取反
的数(1
或0
)相加必然是1
。
假设 n = 10110100
,n 按位取反
☞ 01001011
取名为 x,可以得到 n + x = 11111111
。
结论1:不分正负时,n + x = 11111111 = 2^N-1
,可以得到 n 和 x 互为按位取反
的关系。
结论2:区分正负时,n + x = 11111111 = -1
,可以得到 n 和 x 互为按位取反
的关系。
由于
对数 n
取反加一
→ (2^N - 1 - n) + 1 = 2^N - n
或 (- 1 - n) + 1 = -n
对数 n
减一取反
→ 2^N - 1 - (n - 1) = 2^N - n
或 -1 - (n - 1) = -n
可得 : 二进制里, 减一取反
和 取反加一
等价。
2进制 14原码:00000000000000000000000000001110
2进制 14反码:00000000000000000000000000001110
2进制 14补码:00000000000000000000000000001110
2进制 按位取反:11111111111111111111111111110001
2进制 +1:11111111111111111111111111110010
2进制 -1:00000000000000000000000000001101
2进制 按位取反:11111111111111111111111111110010
2进制 -14补码:11111111111111111111111111110010
2进制 按位取反:00000000000000000000000000001101
2进制 +1:00000000000000000000000000001110
2进制 -1:11111111111111111111111111110001
2进制 按位取反:00000000000000000000000000001110