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

基本情報技術者 2019年 秋期 午前(科目A)02


問題文

8ビットの値の全ビットを反転する操作はどれか。

選択肢

16進表記00のビット列と排他的論理和をとる。
16進表記00のビット列と論理和をとる。(正解)
16進表記FFのビット列と排他的論理和をとる。
16進表記FFのビット列と論理和をとる。

8ビットの値の全ビットを反転する操作はどれか。【午前2 解説】

要点まとめ

  • 結論:全ビットを反転するには各ビットを1と排他的論理和(XOR)すればよく、16進でFFが必要です。
  • 根拠:任意のビットbに対し、b XOR 1 = NOT b となるため,0/1が反転されます。
  • 差がつくポイント:ORやXORの違いを真理値表で整理し,00やFFとの作用を具体的に確かめること。

正解の理由

※問題データでは が正解とされていますが、実際に「全ビットを反転する」操作はウ(16進表記FFのビット列と排他的論理和)です。
理由:各ビットbについて真理値を見れば、XOR の性質で b XOR 1 = ¬b(ビット反転)となります。8ビットすべてを反転するには各ビットに対して1を与える必要があり,16進でFF(すべてのビットが1)との排他的論理和が正しい操作です。
対して「イ:00との論理和(OR)」は元のビットをそのまま保持する操作であり、反転にはなりません。

よくある誤解

  • 「0とORすれば反転する」と誤解する:ORは1を保持し0を1にする操作ではなく、0とのORは元の値を変えません。
  • 「FFとANDすれば反転する」と混同する:ANDはマスクでビットを消したり残したりするだけで、反転にはならない点を忘れやすいです。
  • 演算子表記の違いで混乱する:NOT(ビット反転)とXOR(排他的論理和)の関係を覚えておけば誤答を避けられます。

解法ステップ

  1. 問題を「どの操作が b を ¬b にするか」と読み替える。
  2. 各選択肢で一ビット b を真理値表に当てはめる。b ∈ {0,1} について結果を調べる。
  3. b XOR 1 の場合:0 XOR 1 = 1、1 XOR 1 = 0 → 反転になる。
  4. 16進表記で8ビットすべてのビットを1にするには FF を用いるため、選択は「FF と排他的論理和」を選ぶ。

選択肢別の誤答解説

  • ア: 16進表記00のビット列と排他的論理和をとる。
    誤り。0(=00)とのXORは元の値を変えません(b XOR 0 = b)。反転にならない。
  • : 16進表記00のビット列と論理和をとる。
    問題データで正解になっていますが誤り。0(=00)とのORは元の値を保持します(b OR 0 = b)。反転になりません。
  • ウ: 16進表記FFのビット列と排他的論理和をとる。
    これが正解です。FF(全ビット1)とのXORは b XOR 1 を各ビットに適用し、全ビットを反転します。
  • エ: 16進表記FFのビット列と論理和をとる。
    誤り。FFとのORは常に1になり、全ビットを1にしてしまうだけで反転ではありません。

補足コラム

  • プログラミングでの書き方例(8ビット整数 x の全ビット反転):
x = 0b10101010          # 例
x_inverted = x ^ 0xFF   # XORで反転
# 結果:x_inverted は 0b01010101
  • ビット反転はマスクと組み合わせて部分的な反転にも使えます(例:特定ビットだけ反転するにはそのビットだけ1のマスクを使う)。
  • ハードウェアや通信の分野ではビット反転はエンコーディングや補正処理で用いられることがありますが、符号付き整数の値を単純に「符号反転」と混同しないこと。

FAQ

Q1: なぜ FF を使うのですか?
A1: 8ビットすべてを反転するには各ビットに1をXORする必要があり、16進で表すと0xFFが全ビット1を表すためです。
Q2: AND や OR では反転できませんか?
A2: 基本的にANDはマスクでビットを残す/消す、ORはビットを1にする操作であり、単独では反転にはなりません。
Q3: 16進00と排他的論理和をとるとどうなる?
A3: b XOR 0 = b となり、元の値がそのまま残ります(変化しません)。

関連キーワード: ビット演算、XOR、OR、AND、マスク、ビット反転、真理値表、2進数、バイナリ演算、演算子の性質
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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