過去問解きまくり研究所 ホーム

平成23年度 秋期 午前 問1

基礎理論

2進数に関する問題

x は,0 以上 65,536 未満の整数である。x を 16 ビットの 2 進数で表現して上位 8 ビットと下位 8 ビットを入れ替える。得られたビット列を 2 進数とみなしたとき,その値を x を用いた式で表したものはどれか。ここで,a div b は a を b で割った商の整数部分を,a mod b は a を b で割った余りを表す。また,式の中の数値は 10 進法で表している。

答えと解説を見る

✓ これが正解イ(x div 256)+(x mod 256)×256

解説

上位に置くほうだけを 256 倍します。

16 ビットの値を 8 ビットずつの二つに分けて考えます。下の 8 ビットぶんの重みは 256 なので、x を 256 で割った商が上の側、余りが下の側になります。つまり x は、上の側に 256 を掛けたものへ下の側を足した形に書けます。入れ替えるとは、この二つの置き場所を交換することです。ここで大事なのは、値を組み立てるときに 256 を掛けるのは上に来るほうだけだという点です。下に来るほうは、そのまま足します。交換した後は、もとの余りが上へ、もとの商が下へ移ります。ですから、もとの余りに 256 を掛け、もとの商をそのまま足した形が求める式になります。実際の数でも確かめられます。x が 4,660 のとき商は 18、余りは 52 で、入れ替えた後の値は 52 に 256 を掛けて 18 を足した 13,330 です。式を組むときは、どちらが上に来るかを先に決めてから重みを付ける、という順に進めると取り違えを避けられます。

ほかの選択肢はなぜ違うのか

出典:平成23年度 秋期 応用情報技術者試験 午前 問1

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)