平成23年度 秋期 応用情報技術者試験 午前 問1
xは,0以上65,536未満の整数である。xを16ビットの2進数で表現して上位8ビットと下位8ビットを入れ替える。得られたビット列を2進数とみなしたとき,その値をxを用いた式で表したものはどれか。ここで,a div bはaをbで割った商の整数部分を,a mod bはaをbで割った余りを表す。また,式の中の数値は10進法で表している。
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:イ
16ビットのxを上位8ビットと下位8ビットに分けると,次のようになります。
- 上位8ビットの値:x div 256(256=2⁸で割った商)
- 下位8ビットの値:x mod 256(256で割った余り)
入れ替えた後は,元の上位8ビットが下位8ビットに,元の下位8ビットが上位8ビットに来ます。上位8ビットに置く値は256倍(8ビット左シフト)するので,求める値は
(x div 256)+(x mod 256)×256
となります。
-
ア: (x div 256)+(x mod 256)
誤り。元の下位8ビットを256倍していないため,上位8ビットに移動していません。 -
イ: (x div 256)+(x mod 256)×256
正しい。元の上位8ビットを下位に,元の下位8ビットを256倍して上位に置いた値です。 -
ウ: (x div 256)×256+(x mod 256)
誤り。x div 256 に256を掛けると元の上位8ビットの位置に戻るだけで,この式の値はx自身になります。 -
エ: (x div 256)×256+(x mod 256)×256
誤り。どちらの部分も256倍しており,入れ替えにはなりません。
答え
イ: (x div 256)+(x mod 256)×256
出典:平成23年度 秋期 応用情報技術者試験 午前 問1