1.补码的作用
补码解决了,可以带符号位进行运算,不需要单独标识;
补码解决了自然码正负0的表示方法;
补码实现了减法变加法,ALU中无须集成减法器,同样适用与乘法和除法,也就阐释了计算机底层只需要加法器的原因,所有运算到最后都是加法.
2.了解计算机中如何用加法来代替实现减法
先来回顾各种码:原码、反码、补码、移码
对于正数而言,
原码 = 反码 = 补码 ,移码 = 补码符号位取反
对于负数而言,
反码 = 原码数值位取反,补码 = 原码数值位取反加1,移码 = 补码符号位取反
在计算机中,使用原码运算:
加法——用加法器完成
减法——用减法器完成
这样不高效,能不能用加法来替代减法呢?当然可以
比如时钟中,将10点调成7点,可以通过顺时针(加法)10 + 9 = 19 % 12 = 7,也可以通过逆时针(减法)10 - 3 = 7来实现
接下来,让我们先来了解模运算,在此举几个例子:
对于时钟,模12运算:-15%12=9、-3%12 = 9、9%12 = 9 、21%12 = 9
同样,模运算通过余数将数值划分成多个等价类,同一类等效等价
所以我们就可以实现了用加法代替减法,如在模12运算中,a -3 = a + 9 ,且-3和9的绝对值之和 = 模 = 12 ,这两个数被称为互为补数
模 − a 的 绝 对 值 = a 的 补 数 模 - a的绝对值 = a的补数
模−a的绝对值=a的补数
这样 减法-a,就可以用加法+a的补数来代替了
而在计算机中,假定字长为8bit,也就是00000000~11111111的范围,0到2 8 − 1 2^{8}-12
8
−1,而计算机只能保存8位,天然地就相当于mod 2 8 2^{8}2
8
,因此减法通过 加 (模 - 绝对值)的操作便可由加法替代了。
因此,补码——让减法操作转变为加法操作,节省硬件成本
3.移码的作用
一句话,方便比较大小。
4.移位运算
移位:通过改变各个数码位和小数点的位置,从而改变各数码位的位权。可为移位运算实现乘法、除法。