定点运算(一) - 移位运算

移位:

为什么要移位?

在计算机里面, 移位操作可以与加减法操作一起构成乘除法运算。

注意:因为计算机里面没有专门的硬件来表示小数点, 小数点是人为约定的; 这就说明小数点的位置是不可变的。即移位操作动的是数据而不是小数点。

移位的规则:

符号位不变, 因为负数移位之后还是负数, 不可能因为一个移位就变成正数了, 下面是具体添补代码:

定点运算(一) - 移位运算_第1张图片

主要讲一下补码的添补: 举下面这个例子, 因为文本的不怎么好写就换成图片了。

定点运算(一) - 移位运算_第2张图片

算术移位和逻辑移位的区别:

算术移位:有符号数的移位。

逻辑移位:没有符号数的移位。(移位的时候所有数据都要移)

从上面的定义可知:前面说的都是算数移位。

为了记录最高位移掉的数, 在移位时可以使用带进位的移位。 将移掉的最高位可以移动到进位中, 但是进位也只能保持一 位数。

你可能感兴趣的:(计算机组成原理)