シフト演算(論理シフト・算術シフト)

更新日:

用語解説

シフト演算(論理シフト・算術シフト)は、ビット列を左右にずらす演算です。論理シフトは空いた桁を0で埋め、算術右シフトは符号ビットで埋めます。

■ 試験で押さえるポイント

  • 左に1ビットずらすと2倍、右に1ビットずらすと2分の1になります(範囲内の場合)。

  • 算術右シフトは、負の数の符号を保つため、最上位のビットを複製します。

  • 左シフトで有効なビットがはみ出すと、オーバーフローになります。

シフト

空いた桁の埋め方

例(11110000を右に2ビット)

論理右シフト

0で埋める

00111100

算術右シフト

符号ビットで埋める

11111100

左シフト(共通)

右側を0で埋める

1ビットで2倍(範囲内)

■ 選択肢での判断ポイント

論理右シフトは0で埋め、算術右シフトは符号ビットで埋めます。

例: 11110000を論理右シフトで2ビットずらすと00111100、算術右シフトでは11111100です。

音声で聞く

同じ分野の用語