基礎理論|平成29年度 春期 ITパスポート試験(特別措置試験) 問72
二つの2進数01011010と01101011を加算して得られる2進数はどれか。ここで,2進数は値が正の8ビットで表現するものとする。
- 00110001
- 01111011
- 10000100
- ✓ これが正解11000101
解説
下の桁から順に、上へ繰り上がりを送りながら足します。
2進数の足し算は、1と1を足したときに0を書いて上の桁へ1を送る、という点だけが違います。あとは日ごろの筆算と同じで、下の桁から順に進めます。今回の二つを10進数に直すと、01011010が90、01101011が107にあたります。合わせて197なので、8ビットの範囲にきちんと収まります。197を2進数へ戻すと11000101になります。筆算で確かめても同じ並びになるので、どちらの道筋から解いても構いません。迷ったら、基数変換で10進数に直して足し、もう一度2進数へ戻すほうが、桁の見落としを防げます。8ビットで表せるのは0から255までなので、197はそのまま収まります。もし合計が256を超えると、いちばん上の桁からあふれてしまいます。この問いでは超えないので、あふれを気にせず足せます。
ほかの選択肢はなぜ違うのか
- 桁ごとに、違えば1、同じなら0とした結果です。繰り上がりを一度も上の桁へ送っていないため、足し算ではなく別の演算になっています。1と1のときに0を書くところまでは同じですが、上へ送る1が落ちています。上へ送らなければ足し算になりません。
- 桁ごとに、どちらかが1なら1とした結果です。1と1を足したときに上へ送る分が落ちているので、実際の合計より小さい値になっています。1と1のときに1のままとしており、繰り上がりが生まれません。足し算にはなりません。
- 途中の桁で、上へ送った1が正しく足されていません。下の桁から順に送り続けるところで抜けが起きると、このようにずれた並びになります。筆算で下から順に確かめると、どの桁でずれたかが見つかります。合計は197です。
この問題に関係する言葉
- 2進数
- 基数
- ビット
- 基数変換
出典:平成29年度 春期 ITパスポート試験(特別措置試験) 問72
同じ単元をまとめて解くなら基礎理論へ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)