为什么计算机中的数值都是补码表示和存储的呢?
补码,是一个“与负数等效”的正数。
---------------------
你如果学过三角函数,就知道,三角函数的周期是 T = 2π。
任何负的角度,加上周期 2nπ,都能得到:等效的正角度。
比如,-π/2,与其等效的,就是:+3π/2。
---------------------
2 位的 10 进制数,是:0 ~ 99。
其计数周期就是:T = 10^2 = 100。
此时,可以有:
25 - 1 = 24
25 + 99 = (一百) 24
你只要舍弃进位,只保留 2 位数,+99 就和-1 等效。
---------------------
8 位 2 进制数,是:0000 0000~1111 1111。
(对应的十进制是:0 ~ 255。)
其计数周期就是:T = 2^8 = 256。
任何负数,加上 nT,都能换算成与其等效的正数。
-1 的等效值,就是:-1 + 256 = 255 = 1111 1111。
---------------------
正常计算,可以这样做: 1 - 1 = 0。
用等效的正数计算,即: 1 + 1111 1111 = (1) 0000 0000。
你舍弃进位,只保留 8 位,这两种算法,效果就是相同的。
按照这样做,就消除了负数,并且,加法,也就代替了减法。
计算机的硬件,也就可以简化了。
---------------------
这个“代替负数”的正数,就是计算机专业中的“补码”。
计算机专家,数学底子太洼,搞不懂什么是周期特性。
就自己胡编乱造:“符号位原码反码取反加一符号位不变”。
老外的算术能力差,想不出更好的办法。