IPA過去問ドリル

平成23年度 秋期 応用情報技術者試験 午前 問1

テクノロジ/基礎理論

x は,0以上65,536未満の整数である。x を16ビットの2進数で表現して上位8ビットと下位8ビットを入れ替える。得られたビット列を2進数とみなしたとき,その値を x を用いた式で表したものはどれか。ここで,a div b は a を b で割った商の整数部分を,a mod b は a を b で割った余りを表す。また,式の中の数値は10進法で表している。

出典:平成23年度 秋期 応用情報技術者試験 午前 問1

正解:イ

解説

16ビットの x を x=256×upper+lower(upper=x div 256,lower=x mod 256)と表せます。上位8ビットと下位8ビットを入れ替えると,新しい値は 256×lower+upper となり,加法の交換法則から (x div 256)+(x mod 256)×256 と書けます。

選択肢ごとの解説

  • 誤り。(x div 256)+(x mod 256) は上位バイトと下位バイトを単純に足し合わせただけで,桁の重み(×256)を考慮していない値です。
  • 正しい。入れ替え後の値は 256×(x mod 256)+(x div 256) であり,これは (x div 256)+(x mod 256)×256 と同じです。
  • 誤り。(x div 256)×256+(x mod 256) は入れ替える前の x そのものの値です。
  • 誤り。(x div 256)×256+(x mod 256)×256 は上位・下位の両方に256を掛けており,元の値の256倍相当になってしまいます。
応用情報技術者の過去問を演習モードで解く