必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 応用情報技術者
  3. 平成23年度秋季問題一覧
  4. 平成23年度秋季問題1-解答・解説-分析

平成23年度秋季問題

問題1

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)
(x div 256)+(x mod 256)×256
(x div 256)×256+(x mod 256)
(x div 256)×256+(x mod 256)×256

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)
(x div 256)+(x mod 256)×256
(x div 256)×256+(x mod 256)
(x div 256)×256+(x mod 256)×256

解答:イ

<解説>

シフト演算では、次のように左シフト,右シフトを行う。

  • X を n ビット右シフト→X を 2nで割った商
  • X を n ビット左シフト→X を 2n倍した積

例として16ビットの2進数 00000000 11111111の上位ビットと下位8ビットを入れ替える。

  1. Xの上位8ビットを右シフトするには、X を 256(28)で割る。
  2. Xの下位8ビットは、X を 256(28)で割った余りである。
  3. 2の結果を8ビット左シフトするには、256(28)倍する。

1~3を整理すると次のようになる。

よってイが正解である。