1、算術左移、邏輯左移
算術左移和邏輯左移一樣都是右邊補0
[例] 00101011
算術左移一位:01010110
邏輯左移一位:01010110
二進制數值,左移n位等於原來的數值乘以2的n次方
[例]00011010十進制是26,左移2位后是01101000轉成十進制是104,恰好是26的4倍。
ps:這種倍數關系只適用於左移后被舍棄的高位不含1的情況,否則會溢出。
2、算術右移,邏輯右移
邏輯右移:將二進制數整體右移,左邊補0
[例]10101101邏輯右移一位為01010110
算術右移:符號位要一起移動,並且在左邊補上符號位
[例]11100算術右移一位為11110(符號位1跟着一起移動並且左邊補了1)
二進制數值,右移n位等於原來的數值除以2的n次方
[例]10110100十進制是76(需要先將這個補碼轉換成原碼之后再轉換成十進制),右移兩位后是11101101轉成十進制是19恰好是76的4倍。
- 算術左移和算術右移主要用來進行有符號數的倍增、減半;
- 邏輯左移和邏輯右移主要用來進行無符號數的倍增、減半。
