シフト演算(論理シフト・算術シフト)
更新日:
用語解説
シフト演算(論理シフト・算術シフト)は、ビット列を左右にずらす演算です。論理シフトは空いた桁を0で埋め、算術右シフトは符号ビットで埋めます。
■ 試験で押さえるポイント
左に1ビットずらすと2倍、右に1ビットずらすと2分の1になります(範囲内の場合)。
算術右シフトは、負の数の符号を保つため、最上位のビットを複製します。
左シフトで有効なビットがはみ出すと、オーバーフローになります。
シフト | 空いた桁の埋め方 | 例(11110000を右に2ビット) |
|---|---|---|
論理右シフト | 0で埋める | 00111100 |
算術右シフト | 符号ビットで埋める | 11111100 |
左シフト(共通) | 右側を0で埋める | 1ビットで2倍(範囲内) |
■ 選択肢での判断ポイント
論理右シフトは0で埋め、算術右シフトは符号ビットで埋めます。
例: 11110000を論理右シフトで2ビットずらすと00111100、算術右シフトでは11111100です。