コンピュータの基礎比較問題
論理シフトと算術シフトの違いとして、最も適切なものはどれか。
A.論理シフトも算術シフトも符号ビットを含むすべてのビットを同じように扱い、動作に違いはない。
✗ 誤りです。両者は符号ビットの扱いが異なるため、負数を含む演算では結果に差が生じます。
B.論理シフトは符号ビットを含む全ビットを単純にシフトするが、算術シフトは符号ビットを保持したままシフトを行う。← 正解
✓ 正解です。論理シフトは全ビットを均一にシフトして空きをゼロ埋めし、算術シフトは符号ビットを保持して符号付き整数の乗除算に利用されます。
C.論理シフトは10進数の演算に使用され、算術シフトは2進数の演算にのみ使用される。
✗ 誤りです。どちらも2進数の演算に使用されるものであり、10進数演算専用のシフト操作というものは存在しません。
D.論理シフトは左シフトのみ対応し、算術シフトは右シフトのみ対応するという制約がある。
✗ 誤りです。論理シフトも算術シフトも左右両方向のシフト操作が存在します。