如何区分二进制的算术移位和逻辑移位运算规则,及移位运算对数据的影响。(详解及过程推导)
文章目录
移位的意义
生活中最常见的移位运算就是单位的换算,如1.5m=150cm。如果光看数值而言,1.5该数值小数点右移了两位,数值相应的变为150,相较于前者该数值扩大了一百倍。由生活常识易知,当某个十进制的数值相对于小数点的位置左移了n位,等价于该值被扩大了10n倍。反之,若相对于小数点的位置右移,则等价于该值被缩小了10n倍。同理可得,任意进制的移位意义可类比十进制的移位。
一、怎么区分算术移位和逻辑移位
有符号数的移位称为算术移位,无符号数的移位称为逻辑移位。
二、算术移位的运算规则
对于正数来说,[X]原=[X]补=[X]反。然而对于负数来说,[X]原≠[X]补≠[X]反。因为有符号数的移位称为算术移位,并且计算机中机器数的字长通常都是固定长度的,那么当某一机器数算术左移n位或右移n位时,然而空余的n位该如何填补呢?