基礎理論

基本情報技術者試験 科目A免除 修了試験 20171210 実施分 問2

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

出典:基本情報技術者試験 科目A免除 修了試験 20171210 実施分 問2

答えと解説を見る

正解:イ

覚える知識

左シフトによる2のべき乗倍と加算

16ビット値の上位8ビットはx÷256、下位8ビットはx%256であり、8ビット左シフトは256倍である。

この問題で必要なこと

上位8ビットはx÷256、下位8ビットはx%256。入れ替え後は下位8ビットを256倍して上位に置き、元の上位を下位に置く。

ひっかけ

ウはxそのものに戻り入替えにならない。エは上位側も256倍しておりオーバーフローする。アは単純な和で桁位置が考慮されない。

この知識の出題:本試験系 4 回・免除試験 12 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「シフト演算で掛け算・割り算をする」で学ぶ

同じ知識の過去問