移位操作(shift operation),理学-计算机科学技术-计算机体系结构-计算机算术,将二进制格式的操作数向指定方向移动指定位的运算。移位操作可以分为逻辑移位和算术移位。根据移动方向不同,其又可以分为左移和右移。移位操作需要一个操作码和两个操作数。其中操作码指定移位的类型,一个操作数执行移位,另一个操作数指定移位的数目。逻辑移位主要针对无符号数,移动规则比较简单,不管左移或者右移,对于移动空出的位都添0。具体如下:逻辑左移时,高位移丢,低位添0;逻辑右移时,低位移丢,高位添0。算术移位主要针对有符号数。不论是正数或者负数,移动后其符号位保持不变。对于不同的机器数表示(原码、补码、反码),算术移位的规则会有所不同。下面以补码表示为例来介绍算术移位规则。进行补码右移时,高位空出的位添符号位(最高位)的值;进行补码左移时,保持符号位(最高位)不变,将数值位高位移丢,低位空出的位补0。