令和5年度 秋期 午前 問1
基礎理論
2進数に関する問題
2 桁の 2 進数 x₁ x₂ が表す整数を x とする。2 進数 x₂ x₁ が表す整数を,x の式で表したものはどれか。ここで,int(r)は非負の実数 r の小数点以下を切り捨てた整数を表す。
- ア2x+4 int(x/2)
- イ2x+5 int(x/2)
- ウ2x−3 int(x/2)
- エ2x−4 int(x/2)
答えと解説を見る
✓ これが正解ウ2x−3 int(x/2)
解説
上の桁は商、下の桁は余りで取り出せます。
設問は、2 桁の 2 進数が表す整数を x とし、その 2 桁を入れ替えた 2 進数が表す整数を x の式で書かせています。手がかりは、2 で割ったときの商と余りです。上の桁は x を 2 で割った商そのものなので int(x/2)と書けます。下の桁は割った余りなので、x から商の 2 倍を引いた x − 2 int(x/2)になります。入れ替えた値は、もとの下の桁を上へ持ち上げて 2 倍し、そこへもとの上の桁を足したものです。式にすると 2 ×{x − 2 int(x/2)}+ int(x/2)で、整理すると 2x − 3 int(x/2)になります。正解はこの式です。具体の数でも確かめられます。x が 2 のとき入れ替えた値は 1 で、この式に入れると 4 − 3 で 1 になります。x が 1 のときは 2、x が 3 のときは 3 となり、いずれも合います。
ほかの選択肢はなぜ違うのか
- ア2x+4 int(x/2):2x に 4 int(x/2)を足す形です。上位の桁を下へ落とすはたらきは値を減らす向きなので、足し算でまとめることはできません。x が 2 のとき 8 となり、正しい 1 と合いません。
- イ2x+5 int(x/2):同じく足し算で、掛ける数だけが 5 になった形です。x が 2 のとき 9 となって外れます。桁を下へ移すぶんが差し引かれないため、値がどこまでも大きくなってしまいます。
- エ2x−4 int(x/2):引き算にはなっていますが、掛ける数が 4 で、もとの上の桁を下位へ足し戻すぶんが抜け落ちています。x が 2 のとき 0 となり、入れ替えて得られる 1 になりません。
出典:令和5年度 秋期 応用情報技術者試験 午前 問1
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)