平成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



【正解】 イ

例えば16ビットの2進数 x を
11110000 00001111 として考える。
これを上位8ビットと下位8ビットを入れ替えると
00001111 11110000 となる。

まず、入れ替えた後の2進数の下位8ビット 11110000 は、入替前の2進数 x の
上位8ビットを右へ8ビットシフトさせると得られる。

すなわち、
xを28 = 256で割ることで求めることができる。

次に、入替前の2進数 x の下位8ビット 00001111 は、x を28 = 256で割った
余りである。これを左へ8ビットシフトさせると、入れ替えた後の2進数の上位8ビットが
得られる。
すなわち、
(x mod 256)×256で求めることができる。

以上より、
x を16ビットの2進数で表現して上位8ビットと下位8ビットを入れ替えた数字は
(x div 256) (x mod 256)×256
で表すことができる。

【別解】
16ビットの2進数 x を
258、すなわち、00000001 00000010で考える。
上位8ビットと下位8ビットを入れ替えると 00000010 00000001 = 513である。

ア (258 div 256) + (258 mod 256) = 1+2 = 

イ (258 div 256) + (258 mod 256)×256 = 1+2×256 =
513
ウ (258 div 256)×256 + (258 mod 256) = 1×256+2 =
258
エ (258 div 256)×256 + (258 mod 256)×256 =
 1×256+2×256 = 256+512 =
768

EXCEL VBAのご相談なら ファーストマクロ 



目次 問2
ファーストマクロ TOPページ