今回は令和6年度上期 機械科目 A問題14を解説します。2つのビットパターン1101と1011に対する排他的論理和(ExOR)、否定論理和(NOR)、それらの論理和(OR)、さらに別のビットパターンとの排他的論理和の結果を16進数に変換するという、複数段階のビット演算を問う空所補充問題です。
ExORは一方だけが1のとき1、NORは両方0のときだけ1という定義を順に適用していきます。最後に得られる2進数を10進数経由で16進数に変換する手順も忘れずに確認しましょう。
令和6年度上期 機械科目 A問題14:問題文と選択肢
まずは、実際の試験問題を確認してみましょう。

出典:一般財団法人 電気技術者試験センター「令和6年度上期 第三種電気主任技術者試験」機械科目 A問題14
電験3種 機械科目 【情報】 令和6年度上期 A問題14
二つのビットパターン1101と1011のビットごとの論理演算を行う。排他的論理和(ExOR)は(ア),否定論理和(NOR)は(イ)であり,(ア)と(イ)との論理和(OR)は(ウ)である。1011と(ウ)との排他的論理和(ExOR)の結果を2進数と考え,その数値を16進数で表すと(エ)である。
上記の記述中の空白箇所(ア)〜(エ)に当てはまる組合せとして,正しいものを次の(1)〜(5)のうちから一つ選べ。
(ア) (イ) (ウ) (エ) (1) 1001 0110 1001 9 (2) 0110 0000 1111 D (3) 1001 1111 1001 F (4) 0110 1111 1001 9 (5) 0110 0000 0110 D
出題のポイント:4段階を順に処理する
ビット演算を4回続けて行う問題です。1段階ずつ確実に——途中で間違えると連鎖して全部外れます。
| 演算 | 1 になる条件 | 1101と1011では |
| AND | 両方1 | 1001 |
| OR | どちらか1 | 1111 |
| ExOR | ★一方だけ1(異なる) | 0110 |
| NAND | 両方1 でない | 0110 |
| NOR | ★両方0 | 0000 |
ExOR は「異なるとき1」——1101 と1011 を桁ごとに比べると、2桁目と3桁目だけが違うので0110 です。
NOR は「両方0 のときだけ1」——1101 と1011 には、両方とも0 の桁がありません。だから結果は0000 になります。

4段階を追う
| 段階 | 演算 | 結果 | 確認 |
| (ア) | 1101 ExOR 1011 | 0110 | 異なる桁は2番目と3番目 |
| (イ) | 1101 NOR 1011 | ★0000 | 両方0 の桁がない |
| (ウ) | 0110 OR 0000 | 0110 | 0 とのOR は変化なし |
| (エ) | 1011 ExOR 0110 | 1101=D | 16進1桁に変換 |
(ウ)で「0 とのOR は元のまま」——0+X=X という当たり前の性質です。(イ)が0000 だと分かった時点で、(ウ)=(ア)だと即断できます。
桁ごとに比べる
★4桁は16進1桁

⚠️ よくある間違い
(ア)を1001 としている選択肢はExOR とNAND を取り違えたもの——いや、正確には「一致するとき1」(EX-NOR)と誤った形です。ExOR は「異なるとき1」——逆に覚えていると全滅します。
(イ)を1111 や0110 としている選択肢はNOR をNAND と混同したもの。NOR は「両方0 のときだけ1」——本問では該当する桁がないので0000 です。
ExOR の便利な性質
ExOR には、ほかの演算にない特別な性質があります。知っておくと計算が速くなるでしょう。
| 性質 | 式 | 意味 |
| 0 との演算 | A⊕0=A | そのまま |
| 1 との演算 | A⊕1=Ā | ★反転する |
| 自分自身 | A⊕A=0 | 消える |
| 2回かけると戻る | (A⊕B)⊕B=A | ★元に戻せる |
「2回かけると元に戻る」——これが暗号や誤り検出に使われる理由です。同じ鍵でExOR すれば暗号化、もう一度で復号できます。
本問でもこの性質が確かめられます。(ア)は 1101⊕1011=0110——(エ)で 1011⊕0110 を計算すると1101 に戻るのです。
1 とのExOR で反転するという性質は、特定のビットだけを反転したいときに使われます。反転したい桁に1、そのままにしたい桁に0 を置いてExOR——ビットマスクと呼ばれる手法です。
⏱️ 本番での進め方
① ExOR=異なるとき1。1101と1011 →0110。
② NOR=両方0 のときだけ1。該当なしで0000。
③ 0 とのOR は変化なし。(ウ)=(ア)=0110。
④ 1011⊕0110=1101=D。4桁は16進1桁。
💡 覚え方
「ExOR は異なるとき1、NOR は両方0 のとき1」——この2つを混同しないこと。そして「A⊕B⊕B=A」——2回かけると元に戻るのがExOR の特徴です。

ビット演算の実用的な使い方
AND・OR・ExOR は、それぞれ得意な仕事があります。「ビットマスク」と呼ばれる使い方を知っておきましょう。
| やりたいこと | 使う演算 | マスクの作り方 |
| 特定のビットを0 にする | AND | 残す桁に1、消す桁に0 |
| 特定のビットを1 にする | OR | 立てる桁に1、そのままの桁に0 |
| 特定のビットを反転する | ★ExOR | 反転する桁に1 |
| 特定のビットを調べる | AND | 調べる桁だけ1 |
AND は「0 と組むと必ず0、1 と組むとそのまま」——だからマスクの0 の桁を消せるのです。
OR は「1 と組むと必ず1、0 と組むとそのまま」——立てたい桁に1 を置けばよいことになります。
ExOR は「1 と組むと反転、0 と組むとそのまま」——本問の(エ)がまさにこの使い方です。1011 に0110 をExOR すると、2桁目と3桁目だけが反転して1101 になります。
否定論理を確かめる
NOR と NAND は、ド・モルガンで書き換えられます——意味を確かめておきましょう。
| 演算 | 定義 | 書き換え | 1 になるのは |
| NOR | (A+B)‾ | Ā·B̄ | ★両方0 |
| NAND | (A·B)‾ | Ā+B̄ | どちらかが0 |
NOR は条件が厳しく、1 になりにくい——本問でも0000 になりました。NAND は逆に1 になりやすい——両方1 のときだけ0 だからです。
2進数を扱う感覚を養う
4桁の2進数は16通り——16進1桁と1対1で対応します。この対応が頭に入っていると、変換で手が止まりません。
| 2進 | 16進 | 2進 | 16進 |
| 0000〜0011 | 0〜3 | 1000〜1011 | 8〜B |
| 0100〜0111 | 4〜7 | 1100〜1111 | C〜F |
上位ビットが1 なら8以上——つまり16進では8〜F。本問の1101 は上位が1 なので8以上、下位3桁が101=5 なので8+5=13=D です。
「上位ビットで大まかに、下位で細かく」——こう分けて考えると暗算しやすくなります。
16進数と2進数の行き来
ビット演算の問題では、16進数への変換が必ず出ます——4ビットずつ区切るだけです。
| 2進4桁 | 16進 | 2進4桁 | 16進 |
| 0000 | 0 | 1000 | 8 |
| 0101 | 5 | 1101 | ★D |
| 1010 | ★A | 1110 | E |
| 1100 | C | 1111 | F |
16=24 なので、2進4桁がちょうど16進1桁に対応します。10進を経由する必要はありません。
8ビットなら16進2桁——上位4ビットと下位4ビットに分けて、それぞれ変換するだけです。これが16進数が使われる理由——2進数を短く書けるのです。
10 〜15 はA 〜F——A=1010、F=1111 は覚えておくと速い。ビット演算は2進のまま行い、最後に16進へ直すのが手順になります。
まとめ
| (ア)ExOR | 0110 |
| (イ)NOR | 0000 |
| (ウ)OR | 0110 |
| (エ) | D |
| 答え | (5) |
▼あわせて解きたい関連問題
・2進数・10進数・8進数・16進数の基数変換(穴埋め):【機械】平成28年度A問題14
・2進数・10進数・16進数に関する記述の正誤判定:【機械】令和3年度A問題14

コメント