加法运算
用加法代替减法
10-3=7 和 (10+9)= 19 ,然后 19 mod 12=7,从而达到减法和加法的效果一样
存储单元为8bit时,计算机作加减运算时,都可以看成 mod 2^8
移码
参考
补码的作用
补码是为了让减法操作变为加法操作,减少硬件的成本。
正数的补码为其本身,负数的补码为符号位不变,其余位取反加一。
如何理解补码?
以时钟举例,现在是10点,想要变为3点,可以顺时针旋转5格,记为+5;也可以逆时针旋转7格,记为-7。在此运算里面模为12,5mod12和-7mod12所对应的意义相同,都是将10点变为3点。
由此可以看到,在计算机中,记一个字长为8bit,所以大小为00000000~11111111,由此可以理解模为2^8。
公式:模-a的绝对值=a的补码(a为负数)
例如10001010(-18)的绝对值为00001010(18)
a的补码为反码加1,11110110(-18的补码)
由上述公式可得:
100000000=00001010+11110110
理解补码后,将减法变为加法例如18减去18等于18加上(-18),意义等同于加上-18的补码。
结果本应该为100000000,但是只有8位存储,所以去掉最高位1,结果为00000000