
シフト演算
先頭へ
シフト演算の種類
- シフト演算とは、2進数のビットパターンを右または左にずらす演算である
- コンピュータの演算では以下の2通りのシフト演算がある
- 論理シフト(対象:符号なしデータ)
- 算術シフト(対象:符号付きデータ)
先頭へ
論理シフト
- 2進数を左にSビット論理シフトすると、2s倍することに相当
- 例題
(001101)2を左へ2ビット論理シフトせよ
- 2進数を右にSビット論理シフトすると、2-s倍すること(2sで割ること)に相当
- 例題
(001110)2を右へ1ビット論理シフトせよ
- シフトを組み合わせると任意のかけ算が可能
- 2のべき乗に分解してシフトを組み合わせることで実現
- 例題
5を6倍するのを、シフト演算を応用して行うにはどうしたらよいか
5×6=5×(22+21)=5×22+5×21
- 論理シフトでかけ算や割り算ができるのは正の数だけである
先頭へ
算術シフト
- 右への算術シフトの場合、空いたビットに符号と同じ値を挿入する。
- 符号付き2進数を右にSビット算術シフトすると、2-s倍すること(2sで割ること)に相当
- 例題
2進数を用いて(-20)÷4を計算せよ
- 左への算術シフトは符号ビットを維持し、空いたビットに0を挿入する。
- 符号付き
2進数を左にSビット算術シフトすると、2s倍することに相当
- 例題
2進数を用いて(-7)×4を計算せよ
先頭へ

