今回は平成29年度 機械科目 A問題14を解説します。2つのビットパターン1011と0101について、排他的論理和(ExOR)・否定論理和(NOR)・論理和(OR)のビットごとの演算を行い、最後にその結果を16進数に変換する穴埋め問題です。
ExOR、NOR、ORという3種類の論理演算を順番に適用し、最後にもう一度ExORをとった2進数を16進数に変換するという流れを、ビットごとに丁寧に追っていくのがポイントです。
平成29年度 機械科目 A問題14:問題文と選択肢
まずは、実際の試験問題を確認してみましょう。

出典:一般財団法人 電気技術者試験センター「平成29年度 第三種電気主任技術者試験」機械科目 A問題14
電験3種 機械科目 【情報】 平成29年度 A問題14
二つのビットパターン1011と0101のビットごとの論理演算を行う。排他的論理和(ExOR)は(ア),否定論理和(NOR)は(イ)であり,(ア)と(イ)との論理和(OR)は(ウ)である。0101と(ウ)との排他的論理和(ExOR)の結果を2進数と考え,その数値を16進数で表すと(エ)である。
上記の記述中の空白箇所(ア),(イ),(ウ)及び(エ)に当てはまる組合せとして,正しいものを次の(1)〜(5)のうちから一つ選べ。
(ア) (イ) (ウ) (エ) (1) 1010 0010 1010 9 (2) 1110 0000 1111 B (3) 1110 0000 1110 9 (4) 1010 0100 1111 9 (5) 1110 0000 1110 B
出題のポイント:4段階を順に処理する
1011 と0101 に対して、ExOR →NOR →OR →ExOR の4段階——1つずつ確実に進めます。
| 段階 | 演算 | 結果 | 根拠 |
| (ア) | 1011 ExOR 0101 | 1110 | 異なる桁は上位3つ |
| (イ) | 1011 NOR 0101 | ★0000 | 両方0 の桁がない |
| (ウ) | 1110 OR 0000 | 1110 | 0 とのOR は変化なし |
| (エ) | 0101 ExOR 1110 | 1011=B | 16進1桁に変換 |
1011 と0101 を桁ごとに比べる——1と0、0と1、1と0、1と1。最後の桁だけが一致しているので、ExOR は1110 になります。
NOR は「両方0」の桁だけが1——1011 と0101 のどの桁を見ても、少なくとも一方は1。だから0000 です。
桁ごとに比べる
★11=B


⚠️ よくある間違い
(エ)を9 としている選択肢が3つあります——1001=9 ですが、正しくは1011=11=B です。10=A、11=B——1つずれやすいので慎重に。
(ア)を1010 としている選択肢は桁の比較を1つ誤ったもの。1011 と0101 の3桁目は「1 と0」で異なる——だから1 です。
(ウ)を1111 としている選択肢は(イ)を1111 と誤った結果——NOR とNAND を取り違えているのです。
ExOR が2回で元に戻ることを確かめる
本問には、ExOR の重要な性質が隠れています。(ア)と(エ)の関係を見てみましょう。
—
★1011 に戻った
1011⊕0101=1110、その1110 に0101 をExOR すると1011 に戻る——(A⊕B)⊕B=A という性質そのものです。
| 性質 | 式 | 応用 |
| 可逆性 | (A⊕B)⊕B=A | ★暗号化と復号 |
| 反転 | A⊕1=Ā | ビットの反転 |
| 不変 | A⊕0=A | マスクで守る |
| 消去 | A⊕A=0 | 一致の判定 |
同じ値でExOR すれば0 になる——だから「2つの値が等しいか」を調べるのにも使えます。結果が全部0 なら一致ということです。
暗号化にも使われます。平文と鍵をExOR して暗号文、暗号文と鍵をExOR して平文——同じ操作で行き来できるのが利点です。
本問の(エ)は、まさにその復号にあたる操作——知っていれば計算せずに1011 だと分かります。あとは16進数に直すだけです。
⏱️ 本番での進め方
①(ア)ExOR は異なる桁が1。1011と0101 →1110。
②(イ)NOR は両方0 の桁だけ。該当なしで0000。
③(ウ)0 とのOR は変化なし。1110 のまま。
④(エ)★(A⊕B)⊕B=A なので1011=B。
💡 覚え方
「ExOR は2回かけると元に戻る」——(エ)は計算せずに1011 だと分かる。そして「1011=11=B」——A=10、B=11 の対応に注意してください。
本問と同型の問題が令和6年度上期 A問題14にあります(情報:ビットパターンの論理演算)。ビットパターンが1101と1011 に変わっただけ——解き方はまったく同じです。

ビット演算を暗算するコツ
4桁程度なら、慣れれば暗算できます。演算ごとの着眼点を押さえておきましょう。
| 演算 | 着眼点 | 本問での判断 |
| ExOR | ★違う桁を探す | 1011と0101 →上位3桁が違う |
| NOR | ★両方0 の桁を探す | 1つもない →0000 |
| OR | どちらかに1 がある桁 | 0000 とのORは変化なし |
| AND | 両方1 の桁を探す | — |
「探すもの」を意識すれば速い——全桁を計算するのではなく、条件に合う桁だけ探すのです。
NOR は該当する桁がないことが多い——両方0 という条件は厳しいからです。本問でも0000 になりました。
0000 が出れば、その後のOR は計算不要——相手がそのまま残るだけ。1段分の計算が省けることになります。
16進数の対応を確実にする
(エ)で問われた16進数への変換——A〜F の対応が最大の関門です。1つずれると別の答えになります。
| 2進数 | 10進数 | 16進数 | 覚え方 |
| 1001 | 9 | 9 | ここまでは数字 |
| 1010 | 10 | ★A | 10 からアルファベット |
| 1011 | 11 | ★B | 本問の答え |
| 1100 | 12 | C | — |
1001(9)と1011(B)は1桁違うだけ——誤答の9 は、まさにここを取り違えたものです。2進数を読み直して確かめるのが確実になります。
1011=8+0+2+1=11——重みを足して確認すれば間違えません。11 は A(10)の次なのでB です。
ビットパターンという言葉
問題文の「ビットパターン」——数値としてではなく、0 と1 の並びとして扱うという意味です。
だから「1011」を11 という数と見る必要はありません——4本の信号線の状態だと考えればよいのです。論理演算は桁ごとに独立——繰り上がりも借りもありません。
最後に「2進数と考え、16進数で表すと」と書かれているのは、そこで初めて数値として扱うという指示——問題文が丁寧に区別しているのです。
ビット演算の性質
各ビットを独立に演算する——桁上がりがないのが算術演算との違いです。
| 演算 | 性質 | 使いどころ |
| AND | ★特定のビットだけ残す(マスク) | 下位4ビットを取り出す |
| OR | ★特定のビットを1 にする | フラグを立てる |
| EX-OR | ★特定のビットを反転する | ビット反転、暗号 |
| NOT | 全ビット反転 | 1 の補数 |
AND は「0 と組めば0、1 と組めばそのまま」——だからマスクとして使えるのです。残したいビットに1、消したいビットに0 を当てます。
EX-OR は「1 と組めば反転、0 と組めばそのまま」——反転したいビットに1 を当てます。同じ値で2回EX-OR すると元に戻るので、簡単な暗号にも使われます。
算術の足し算と違って桁上がりがない——各桁が完全に独立です。だから8桁を一度に計算しようとせず、桁ごとに書き並べるのが確実になります。
まとめ
| (ア) ExOR | 1110 |
| (イ) NOR | 0000 |
| (ウ) OR | 1110 |
| (エ) 16進変換 | B |
| 答え | (5) |
▼あわせて解きたい関連問題
・2進数の和と差からBの値を求める連立方程式:【機械】令和元年度A問題14
・AND・OR・EX-OR・NANDの4種論理演算と16進変換:【機械】平成21年度A問題14

コメント