平成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進法で表している。
- (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
になります。
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
になります。
広告