平成30年度 春期 午前 問1
離散数学
2の補数に関する問題
ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは“11”であった。10進表記法の下で,その整数値を4で割ったときの余りに関する記述として,適切なものはどれか。ここで,除算の商は,絶対値の小数点以下を切り捨てるものとする。
- アその整数値が正ならば3
- イその整数値が負ならば −3
- ウその整数値が負ならば3
- エその整数値の正負にかかわらず0
答えと解説を見る
✓ これが正解アその整数値が正ならば3
解説
正ならば余りは3、負ならば−1になります。
2の補数で表した下位2ビットが11ということは、4で割った余りの部分が3にあたる並びです。正の整数なら、そのまま余りは3になります。3や7を4で割ると、商はそれぞれ0と1で、余りはどちらも3でした。だから正ならば3という説明が当たります。負の整数のときは、商の丸め方が効いてきます。設問は商を絶対値の小数点以下で切り捨てると決めていました。−1を4で割ると、絶対値は0.25なので商は0です。余りは−1になります。−5でも絶対値は1.25なので商は−1、余りはやはり−1でした。負のときに出てくるのは−1だけで、大きさが3の値は現れません。どちらの符号でも余りが0になるのは、4で割り切れる並びのときでした。丸め方を先に決めてから、小さい数で実際に試すのが早道です。
ほかの選択肢はなぜ違うのか
- イその整数値が負ならば −3:負ならば−3になると述べています。符号だけを見れば、負の数には負の余りが付くように思えます。ところが当てはめてみると、−1でも−5でも−9でも、出てくるのは−1だけでした。大きさが3の負の値は現れません。指定された丸め方から作れない数字です。
- ウその整数値が負ならば3:負ならば3になると述べています。この3は、商を小さい側へ丸めた場合に現れる値でした。−5の商を−2とすれば、確かに余りは3になります。けれども切り捨てるのは絶対値のほうだと指定されていました。丸める向きが違っています。
- エその整数値の正負にかかわらず0:どちらの符号でも0になると述べています。余りが0になるのは、4でちょうど割り切れるときでした。その場合、下位2ビットは00になります。設問が示した並びは11なので、割り切れてはいません。前提のビットと食い違っています。
出典:平成30年度 春期 基本情報技術者試験 午前 問1
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)