平成19年秋期試験午前問題 問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
正解 問題へ
分野:テクノロジ系
中分類:基礎理論
小分類:離散数学
例として16ビットの2進数 11110000 00001111の上位ビットと下位8ビットを入れ替えると、

 11110000 00001111 → 00001111 11110000

になります。入れ替え後の下位8ビットは、入れ替え前の上位8ビットを右へ8ビット論理シフト(28で割る)することで表現できます。(div 256は右へ8ビット論理シフトするのと同じ)

 11110000 00001111 div 256=00000000 11110000

さらに入れ替え後の上位8ビットは、元のビット列を256で割った余りである下位8ビットを256倍することで表現できます。

 11110000 00001111 mod 256=00000000 00001111
 00000000 00001111×256=00001111 00000000

入替え後のビット列は上位8ビット"(x div 256)"と下位8ビット"(x mod 256)×256"を足し合わせたものであるため、式は、

 (x div 256)+(x mod 256)×256

になります。

この問題の出題歴


Pagetop