ビットシフト
作成日
更新日
ビットシフトとは、数値の2進数表現(ビット列)を左右にずらす操作のこと。
コンピュータの処理において非常に高速で、効率的に計算やフラグ操作ができる。
左シフトと右シフトの違い
操作 | 書き方 | 効果 | 例(10進数) |
---|---|---|---|
左シフト | x << n |
x を 2ⁿ 倍する | 1 << 3 → 8 |
右シフト | x >> n |
x を 2ⁿ で割る(整数除算) | 8 >> 3 → 1 |
print(1 << 4) # 16 → 2⁴
print(16 >> 2) # 4 → 16 ÷ 2²
<<
は 2 のべき乗を計算する簡単な方法
例
4 << 6
左シフト
# 4を二進数にする
4 = 00000100(8ビット表記)
# ビットを左に6個ずらす
10000000 000000(末尾に0が6個付く)
# 10進数での計算結果
4 × 2⁶ = 4 × 64 = 256
4 >> 6
右シフト
# 4を二進数にする
4 = 00000100(8ビット表記)
# ビットを右に6個ずらす
00000000
# 10進数での計算結果 ※ 小数は切り捨てになるので 0
4 ÷ 2⁶ = 4 ÷ 64 = 0(整数除算)
関連

公開日
更新日