今回は令和3年度 機械科目 A問題14を解説します。2進数,10進数,16進数の相互変換に関する5つの記述のうち、誤っているものを選ぶ問題です。
16進数を2進数に変換するときは、1桁ずつ4桁の2進数に対応させます。(3D)16は3→0011,D→1101なので(00111101)2、有効桁で表すと(111101)2となる点がポイントです。
令和3年度 機械科目 A問題14:問題文と選択肢
まずは、実際の試験問題を確認してみましょう。

出典:一般財団法人 電気技術者試験センター「令和3年度 第三種電気主任技術者試験」機械科目 A問題14
電験3種 機械科目 【情報】 令和3年度 A問題14
2進数,10進数,16進数に関する記述として,誤っているものを次の(1)〜(5)のうちから一つ選べ。
(1)16進数の(6)16を16倍すると(60)16になる。
(2)2進数の(1010101)2と16進数の(57)16を比較すると(57)16の方が大きい。
(3)2進数の(1011)2を10進数に変換すると(11)10になる。
(4)10進数の(12)10を16進数に変換すると(C)16になる。
(5)16進数の(3D)16を2進数に変換すると(111011)2になる。
出題のポイント:16進1桁=2進4桁
誤りは(5)です。(3D)16 を2進数にすると (111101)2——選択肢は(111011)と書いており、下位2桁が入れ替わっています。
★D は13
先頭の0 を落とす
16進数の変換は「1桁ずつ4桁にする」だけ——10進数を経由する必要はありません。D=13=1101 さえ分かれば即座に書けます。
| 10進 | 2進 | 8進 | 16進 |
| 0〜7 | 0000〜0111 | 0〜7 | 0〜7 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | ★A |
| 12 | 1100 | 14 | ★C |
| 13 | 1101 | 15 | ★D |
| 15 | 1111 | 17 | ★F |
A〜F が10〜15——この対応だけは覚えておく必要があります。「A から始まって F まで6文字」と押さえておけば、C=12、D=13 もすぐ出てきます。

(1)〜(4) が正しい理由
(1) 16進数を16倍すると桁が1つ上がる
正しい記述です。10進数を10倍すると末尾に0 が付くのと同じ——16進数を16倍すれば末尾に0 が付きます。
基数倍すると桁が1つ上がる——どの基数でも成り立つ性質です。2進数なら2倍で左シフト——本質は同じになります。
(2) 大小の比較
正しい記述です。(1010101)2=64+16+4+1=85、(57)16=5×16+7=87——確かに16進数のほうが大きい。
基数が違うものを比べるときは、必ず10進数にそろえる——見た目の桁数では判断できません。2進数7桁と16進数2桁が、ほぼ同じ大きさだという感覚も持っておくとよいでしょう。
(3)(4) 基本的な変換
(1011)2=8+2+1=11——正しい。2進数から10進数は、1 が立っている桁の重みを足すだけです。
(12)10=(C)16——これも正しい。10=A、11=B、12=C の対応どおりです。

⚠️ よくある間違い
D を12 と誤ると (1100)になり、(111100) という別の誤りが出ます。C=12、D=13——1つずれやすいので注意してください。
検算は10進数で——(3D)16=3×16+13=61、(111101)2=32+16+8+4+1=61 で一致。(111011)2 なら59 で合いません。
基数変換の道具立て
| 変換 | やり方 | コツ |
| 2進→10進 | 1 が立つ桁の重みを足す | 1,2,4,8,16,32,64,128 |
| 10進→2進 | 2で割って余りを下から並べる | 重みを大きい順に引いてもよい |
| 2進→8進 | ★下位から3桁ずつ区切る | 足りない分は上位に0 を補う |
| 2進→16進 | ★下位から4桁ずつ区切る | 同上 |
| 16進→2進 | 1桁を4桁に展開 | 10進を経由しない |
区切るのは必ず下位から——上位から区切ると桁がずれます。足りない分は上位に0 を補って4桁(3桁)にそろえるのが手順です。
8進数と16進数が使われる理由は、2進数と相性がよく、しかも桁数が短くて済むから。2進数8桁が16進数なら2桁——人間が扱いやすい表現になっています。
⏱️ 本番での進め方
① 16進1桁=2進4桁。10進を経由しない。
② A〜F は10〜15。C=12、D=13。
③ (3D)16=0011 1101=(111101)2。
④ 検算は10進数で。61 になれば正しい。
💡 覚え方
「16進1桁=2進4桁、8進1桁=2進3桁」——16=24、8=23 だから。そして「区切るのは下位から」——上位から区切るとずれます。

なぜコンピュータは2進数なのか
10進数のほうが人間には自然なのに、コンピュータが2進数を使う理由を考えてみましょう。
| 観点 | 2進数 | 10進数 |
| 必要な状態の数 | ★2つ(0と1) | 10段階 |
| 回路の作りやすさ | スイッチのオン・オフでよい | 10段階の電圧を区別する必要 |
| ノイズへの強さ | ★強い | 弱い |
| 桁数 | 多くなる | 少ない |
0 と1 の2状態なら、多少電圧がずれても判別できます——「しきい値より上か下か」だけ見ればよい。10段階を区別しようとすると、わずかなノイズで誤ることになります。
これがディジタル信号がノイズに強い理由そのものです。アナログ信号は雑音がそのまま乗るが、ディジタルは判別さえできれば完全に復元できる——途中で何度中継しても劣化しないのです。
BCD——2進化10進数という折衷案
人間には10進数、機械には2進数——その折衷がBCD(Binary Coded Decimal)です。
10進数の1桁を、2進数4桁で表す——たとえば10進数の「29」なら 0010 1001。純粋な2進数(11101)とは違う 点に注意してください。
| 10進数 | BCD | 純2進数 |
| 9 | 1001 | 1001 |
| 10 | 0001 0000 | ★1010 |
| 29 | 0010 1001 | ★11101 |
BCD では1010〜1111(10〜15)を使いません——だから効率は落ちます。その代わり10進数との変換が桁ごとにできる——7セグメント表示など、表示用途で使われます。
16進数が使われる場面
16進数は、実務でもよく目にする表記です。どこで使われているかを知っておくと親しみが湧きます。
| 場面 | 例 | 桁数 |
| 色の指定 | #FF8000(オレンジ) | 6桁=3バイト |
| MACアドレス | 00:1A:2B:3C:4D:5E | 12桁=6バイト |
| メモリのアドレス | 0x00400000 | 8桁=4バイト |
いずれも「2進数だと長すぎるから16進数で書く」——4分の1の桁数で済むのが理由です。しかも4桁ずつ機械的に2進数へ戻せる——人間にも機械にも都合がよい表記だと言えます。
まとめ
| (3D)16 | (00111101)2=(111101)2 |
| 選択肢(5)の記載 | (111011)2(誤り) |
| 答え | (5) |
▼あわせて解きたい関連問題
・2進数・10進数・8進数・16進数の基数変換(穴埋め):【機械】平成28年度A問題14
・ビットパターンの論理演算と16進数変換:【機械】令和6年度上期A問題14

コメント