邏輯左移時,最高位丟失,最低位補0;
邏輯右移時,最高位補0,最低位丟失;
算術左移時,依次左移一位,尾部補0,最高的符號位保持不變。
算術右移時,依次右移一位,尾部丟失,符號位右移後,原位置上覆制一個符號位;
迴圈左移時,將最高位重新放置最低位
迴圈右移時,將最低位重新放置最高位
使用迴圈操作的一個目的就是把每一位連續放到最左邊,以判定資料的符號。如果要把一個數字的高位部分和低位部分互換,採用一位操作就很方便,速度很快。
例如:
1010100010101 邏輯左移一位結果為 0101000101010
邏輯右移一位結果為0101010001010
算術左移一位結果為 1101000101010
算術右移一位結果為1101010001010
迴圈左移一位結果為 0101000101011
迴圈右移一位結果為 1101010001010 |