补码


我们用数学方式来重新定义计算机里面的运算,因为内存是有限的,所以我们在计算机当中 存储数据的时候,这些数据都是有范围的数,所以所有的运算都是建立在模数上的,例如加法成了 模加。a+b成了(a+b)%mod。
为了让减法跑的更快,我们把减法丢掉了,于是这个世界只有加法了。减法成了加一个负数。 负数又是怎么定义的呢?如果x=-1,我们可以这样来存储(0-1+mod)%mod=mod-1 于是我们把负数也映射到了新的正数上。
由于模加也满足加法的交换率结合律等等优良性质。很明显,对于负数-x和-y我们存的是mod-x 和mod-y,于是经历模加(-x+-y)%mod=(mod-x+mod-y)%mod这显然是正确的。


文章作者: fightinggg
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fightinggg !
  目录