基本情報技術者試験「2進数と2の補数」の問題
8ビットの2進数で負数を2の補数表現する場合、10進数の-45を表すビット列はどれか。
ア11010011
イ101101
ウ反転値11010010
エ符号方式10101101
正解
ア.11010011
45の2進数は00101101である。ビット反転で11010010、これに1を加えると11010011となる。これが-45の2の補数表現であり正しい。
?選択肢ごとの解説
ア ○45の2進数は00101101である。ビット反転で11010010、これに1を加えると11010011となる。これが-45の2の補数表現であり正しい。
イ ×101101は45の絶対値を6ビットで書いただけで、補数化も8ビット化もしていない誤りである。
ウ ×反転値11010010は反転だけ行い最後の+1を忘れた値であり、1の補数に相当する典型的な計算ミスである。
エ ×符号方式10101101は最上位ビットだけ符号として1にし残りを45のまま並べた絶対値方式の誤りであり、2の補数ではない。
✎くわしく
2の補数は『ビット反転して1を加える』手順で求める。これにより加減算を統一的に扱え、ゼロの表現も一意になる。1の補数(反転のみ)との差はちょうど最後の+1にある。
✓本番での押さえどころ
試験のコツ
『反転して+1』を必ずセットで行うこと。検算は元の正数と足してビット幅で桁あふれを捨てて0になるかで確認する。
覚え方
補数=『裏返して一歩進む』と覚える。裏返し(反転)だけでは1の補数、一歩進む(+1)で2の補数。
よくある誤り
反転後の+1を忘れて1の補数で止める、または符号ビットのみ立てて絶対値表現にしてしまう誤りが多い。
基礎理論の他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0001