HOME»応用情報技術者平成23年秋期»午前問1
応用情報技術者平成23年秋期 午前問1
午前問1
xは,0以上65,536未満の整数である。xを16ビットの2進数で表現して上位8ビットと下位8ビットを入れ替える。得られたビット列を2進数とみなしたとき,その値をxを用いた式で表したものはどれか。ここで,a div b はaをbで割った商の整数部分を,a mod b はaをbで割った余りを表す。また,式の中の数値は10進法で表している。
- [この問題の出題歴]
- ソフトウェア開発技術者 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
になります。
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
になります。