对计算机而言,数据输入后从原码转化为补码形式储存,输出则是补码对应的原码的数值。
~n = -n-1,等价于证明~n+1 = -n,以n=10作为例子;
10 的原码是 “00001010”,为正数,所以输入后 10 的补码也是 “00001010” ,接下来计算机的运算是补码运算,~10+1 = 11110101 + 1 = 11110110,而 “11110110” 是 -10 的补码;-10运算表示的就是将正数 10 的补码转换为负数 10 的补码,而非简单的由 “00001010” 变为 “10001010”,因为 “10001010” 是 “-10” 的原码,而计算机的处理用的是补码,故为 “11110110”,故左右相等,证毕。