为什么要使用原码,反码,补码
在计算机系统中,数值,一律采用补码表示和存储。
原码和反码,都是没有任何用处的。
补码的功能,类似于:
时针,倒拨 3 小时,可以用正拨 9 小时代替。
利用这种思路,计算机中的负数,也可以用正数(即补码)代替。
于是,计算机中,就没有负数了。
同时,减法运算,也都不存在了。
因此,借助于补码,就能统一加减法,从而简化计算机的硬件。
这就是使用补码的原因。
------------------------
在时钟中,时针转一圈,周期是 12。
正拨 9 代替倒拨 3,其算法是:9 = -3 + 周期 12。
分针,倒拨 X 分,也可用正拨(-X + 周期 60)代替。
在三角函数中,周期是 2π。
一个负角度,也能用周期,算出等效的正角度。
------------------------
在计算机中,8 位 2 进制,称为一个字节。
其计数周期是:2^8 = 256。
那么:
-1 的补码是:-1 + 256 = 255 = 1111 1111(二进制)。
-2 的补码是:-2 + 256 = 254 = 1111 1110(二进制)。
。。。
正数,则必须直接参加运算,不许作任何转换。
即:正数,不存在补码。
------------------------
补码,是从计数系统的周期性,推导出来的。
补码与“原码反码符号位”,并无半点关系。
由“取反加一”学习补码,就不会理解补码的作用和产生的原因。
那么,为什么要使用原码、反码、符号位?
老外数学不好,也就只能用这些乱七八糟的操作,来求补码了。