基礎理論

基本情報技術者試験算術シフト」の問題

テクノロジ系基礎理論計算問題難易度:normal
2の補数表現の負の整数-48に対して、符号を保ちながら算術右シフトを2ビット行った結果を10進数で表すとどれか。
-24 となる
12 になる
-192 に増加する
-12 である
正解
-12 である

算術右シフトは最上位の符号ビットを保ったまま右へずらすため、2ビットで2^2=4による除算になる。-48÷4=-12となり正しい。

?選択肢ごとの解説

ア ×-24は右シフト1ビット(÷2)の結果であり、2ビット分シフトしていない誤りである。
イ ×12は符号を無視して絶対値だけ4で割った誤りで、算術シフトが符号を保つ点を考慮していない。
ウ ×-192は右ではなく左シフト(×4)してしまった誤りで、シフト方向を取り違えている。
エ ○算術右シフトは最上位の符号ビットを保ったまま右へずらすため、2ビットで2^2=4による除算になる。-48÷4=-12となり正しい。

くわしく

算術右シフトは符号ビットを複製しながら右へ詰めるため、負数でも2^nによる除算(切り下げ)になる。論理右シフトは空いた上位に0を詰めるため負数では符号が壊れる。符号付き除算には算術シフトを用いる点が核心である。

本番での押さえどころ

試験のコツ

『算術右n=÷2^n(符号保持)』『算術左n=×2^n』。負数では必ず算術シフトを使うと覚える。

覚え方

算術シフトは『符号を引きずって動く』。右は割り算、左は掛け算、と方向で覚える。

よくある誤り

算術シフトと論理シフトを混同し負数の符号を壊す、またはシフト量(ビット数)と除数2^nの対応を誤る。

基礎理論の他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0078

【基本情報技術者試験】算術シフトの問題 — 解答・解説|ukamiru 過去問