情報23【電験3種 機械】ビットパターンの論理演算(ExOR・NOR)と16進数変換!令和6年度上期 A問題14 完全解説

電験3種 機械科目 情報 令和6年度上期 A問題14 ビット演算の結果を16進で!正しい答えは?

今回は令和6年度上期 機械科目 A問題14を解説します。2つのビットパターン1101と1011に対する排他的論理和(ExOR)、否定論理和(NOR)、それらの論理和(OR)、さらに別のビットパターンとの排他的論理和の結果を16進数に変換するという、複数段階のビット演算を問う空所補充問題です。

ExORは一方だけが1のとき1、NORは両方0のときだけ1という定義を順に適用していきます。最後に得られる2進数を10進数経由で16進数に変換する手順も忘れずに確認しましょう。

目次

令和6年度上期 機械科目 A問題14:問題文と選択肢

まずは、実際の試験問題を確認してみましょう。

電験3種 機械科目 情報 令和6年度上期 A問題14 問題文
令和6年度上期 機械科目 A問題14 問題文

出典:一般財団法人 電気技術者試験センター「令和6年度上期 第三種電気主任技術者試験」機械科目 A問題14

電験3種 機械科目 【情報】 令和6年度上期 A問題14

 二つのビットパターン1101と1011のビットごとの論理演算を行う。排他的論理和(ExOR)は(ア),否定論理和(NOR)は(イ)であり,(ア)と(イ)との論理和(OR)は(ウ)である。1011と(ウ)との排他的論理和(ExOR)の結果を2進数と考え,その数値を16進数で表すと(エ)である。

 上記の記述中の空白箇所(ア)〜(エ)に当てはまる組合せとして,正しいものを次の(1)〜(5)のうちから一つ選べ。

(ア)(イ)(ウ)(エ)
(1)1001011010019
(2)011000001111D
(3)100111111001F
(4)0110111110019
(5)011000000110D

出題のポイント:4段階を順に処理する

ビット演算を4回続けて行う問題です。1段階ずつ確実に——途中で間違えると連鎖して全部外れます

演算1 になる条件1101と1011では
AND両方11001
ORどちらか11111
ExOR★一方だけ1(異なる)0110
NAND両方1 でない0110
NOR★両方00000

ExOR は「異なるとき1」——1101 と1011 を桁ごとに比べると、2桁目と3桁目だけが違うので0110 です。

NOR は「両方0 のときだけ1」——1101 と1011 には、両方とも0 の桁がありませんだから結果は0000 になります。

ExOR、NOR、ORの1ビット真理値表
4ビットの論理演算も、各桁に同じ真理値表を適用します

4段階を追う

段階演算結果確認
(ア)1101 ExOR 10110110異なる桁は2番目と3番目
(イ)1101 NOR 1011★0000両方0 の桁がない
(ウ)0110 OR 000001100 とのOR は変化なし
(エ)1011 ExOR 01101101=D16進1桁に変換

(ウ)で「0 とのOR は元のまま」——0+X=X という当たり前の性質です。(イ)が0000 だと分かった時点で、(ウ)=(ア)だと即断できます。

\( 1011\ \mathrm{ExOR}\ 0110=1101 \)
(エ)の計算
桁ごとに比べる
\( (1101)_2=8+4+1=13=(\mathrm{D})_{16} \)
16進数に変換
★4桁は16進1桁
1011と0110のExORを1101と求めて16進数Dへ変換する計算図
1101は10進数13、16進数Dなので、正解は(5)です
答え(ア)0110 (イ)0000 (ウ)0110 (エ)D——正解は (5)です。

⚠️ よくある間違い
(ア)を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 の特徴です。

1101と1011からExOR、NOR、ORを順に計算する途中結果
(ア)は0110、(イ)は0000、そのORで(ウ)は0110です

ビット演算の実用的な使い方

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〜00110〜31000〜10118〜B
0100〜01114〜71100〜1111C〜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進
0000010008
010151101★D
1010★A1110E
1100C1111F

16=24 なので、2進4桁がちょうど16進1桁に対応します。10進を経由する必要はありません

8ビットなら16進2桁——上位4ビットと下位4ビットに分けて、それぞれ変換するだけです。これが16進数が使われる理由——2進数を短く書けるのです。

10 〜15 はA 〜F——A=1010、F=1111 は覚えておくと速い。ビット演算は2進のまま行い、最後に16進へ直すのが手順になります。

まとめ

(ア)ExOR0110
(イ)NOR0000
(ウ)OR0110
(エ)D
答え(5)

▼あわせて解きたい関連問題
・2進数・10進数・8進数・16進数の基数変換(穴埋め):【機械】平成28年度A問題14
・2進数・10進数・16進数に関する記述の正誤判定:【機械】令和3年度A問題14

📚 次に解くべき関連問題
【機械】平成28年度A問題14(情報22)
【機械】平成29年度A問題14(情報24)
【機械】令和6年度上期B問題18(情報27)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次