離散数学 (全52問中19問目)

No.19

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
  • [この問題の出題歴]
  • ソフトウェア開発技術者 H19秋期 問1

分類

テクノロジ系 » 基礎理論 » 離散数学

正解

解説

例として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

になります。
© 2010-2018 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop