基礎理論

基本情報技術者試験2進数と2の補数」の問題

テクノロジ系基礎理論計算問題難易度:normal
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

【基本情報技術者試験】2進数と2の補数の問題 — 解答・解説|ukamiru 過去問