戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2011年 秋期 午前201


問題文

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

選択肢

( div 256)+( mod 256)
( div 256)+( mod 256)×256(正解)
( div 256)×256+( mod 256)
( div 256)×256+( mod 256)×256

16ビット整数の上位・下位8ビット入れ替え【午前2 解説】

要点まとめ

  • 結論:16ビット整数の上位8ビットと下位8ビットを入れ替える式は「( div 256) + ( mod 256) × 256」で表せます。
  • 根拠:を16ビットで表すと、上位8ビットは div 256、下位8ビットは mod 256で分解可能です。
  • 差がつくポイント:ビット操作の理解と、商と余りの役割を正しく把握し、入れ替え後の重み付けを間違えないことが重要です。

正解の理由

は16ビット整数なので、と表せます。
ここで、上位8ビットは、下位8ビットはです。
上位8ビットと下位8ビットを入れ替えると、下位8ビットが上位に、上位8ビットが下位に移動します。
つまり、入れ替え後の値は「(下位8ビット) × 256 + (上位8ビット)」となり、式は「( mod 256) × 256 + ( div 256)」です。
選択肢の中でこれに該当するのはイ: ( div 256) + ( mod 256)×256です。

よくある誤解

  • 「div」と「mod」の役割を逆に考え、上位・下位ビットの位置を間違えることがあります。
  • 256を掛ける部分を誤って両方に掛けてしまうミスも多いです。

解法ステップ

  1. を16ビットの上位8ビットと下位8ビットに分解する。
  2. 上位8ビットは、下位8ビットはで求める。
  3. 入れ替え後は下位8ビットが上位に、上位8ビットが下位に移動することを理解する。
  4. 式にすると「(下位8ビット) × 256 + (上位8ビット)」となる。
  5. 選択肢の中からこれに合致するものを選ぶ。

選択肢別の誤答解説

  • ア: ( div 256) + ( mod 256)
    → 上位・下位の重み付けが逆で、単純な足し算になっており入れ替えを表していません。
  • イ: ( div 256) + ( mod 256)×256
    → 正解。下位8ビットを上位に、上位8ビットを下位に移動させる式です。
  • ウ: ( div 256)×256 + ( mod 256)
    → 元のの表現そのままで、入れ替えをしていません。
  • エ: ( div 256)×256 + ( mod 256)×256
    → 両方に256を掛けており、16ビットの範囲を超える誤った計算です。

補足コラム

16ビット整数のビット操作は、組み込み系やネットワーク処理で頻出します。
特に「ビッグエンディアン」と「リトルエンディアン」の違いは、上位・下位バイトの並び順の違いであり、今回の問題はその基礎理解に役立ちます。
また、ビットシフト演算を使うとより効率的に処理できます。

FAQ

Q: なぜ256で割るのですか?
A: 256はで、16ビットのうち上位8ビットを取り出すために使います。
Q: 「div」と「mod」の違いは何ですか?
A: 「div」は割り算の商の整数部分、「mod」は割り算の余りを表します。
Q: ビットシフトで同じ処理はできますか?
A: はい、例えば「(x & 0xFF) << 8 | (x >> 8)」で同様の入れ替えが可能です。

関連キーワード: 16ビット整数、ビット操作、商と余り、バイト入れ替え、ビッグエンディアン、リトルエンディアン
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について