暗記ものも中高年にはもちろんツラいのですが、計算ものもそれ以上に私は苦手です。
でも避けて通れない(泣)・・・
この記事で分かること(目次)
✅ なぜ2進数を勉強すべきか?
- 午前試験で毎回必ず出る
- 午後試験のアルゴリズムやソフトウェア開発の理解にもつながる
- 情報処理技術者にとって**「読み書きの基本スキル」**だから
2進数の考え方がなぜ必要?
上記のように、もちろん試験のために勉強するのではありますが・・・
💡 結論:コンピュータは「電気のON/OFF」しかわからないから!
■ コンピュータの中身は「電気」で動いている
パソコンやスマホのCPUやメモリといった電子回路は、すべて電気の流れで情報を扱っています。
その電気の状態には2つしかありません:
- 電気が流れている(電圧がある)→「1」
- 電気が流れていない(電圧がない)→「0」
この 「1と0」の2つの状態を使って情報を表現するのが「2進数(バイナリ)」です。
🔧 例:数字も文字も全部「1と0」に変換されて処理される
- 数値の 13 → 2進数で「1101」
- 文字の A → ASCIIコードで 65 → 2進数で「01000001」
- 画像も音声も → 最終的には大量の「1と0」のかたまりに!
■ じゃあなぜ10進数じゃダメなの?
10進数(0〜9)を扱うには、「10種類の状態」を正確に区別できる回路が必要になります。
でも、それは作るのが非常に難しいし、不安定です。
一方、「2種類(ONとOFF)」だけなら、シンプルな回路で安定して動かせるので、
2進数がコンピュータにとって最も効率的な表現方法なんです。
🔁 だからこそ、私たちは…
人間は10進数で考えるけれど、
コンピュータは2進数で処理しているので、
その橋渡しとして 「2進数⇔10進数の変換」や「ビット演算」 を理解する必要があるんです。
🧠 試験でもよく聞かれる視点
- 「1ビットあたりの情報量はどれだけ?」
- 「8ビットで表現できる最大の数は?」
- 「論理演算でビットがどう変化するか?」
こうした問題も、「なぜ2進数が必要か」がわかっていると、ただの暗記じゃなく、理解ベースで覚えられるようになります。
📘 これから学ぶべき2進数関連のトピック一覧
順番にマスターしていくのがおすすめです:
🔹 初級
- 2進数 ⇔ 10進数の変換
- 2進数の桁数とビット数
- 16進数 ⇔ 2進数の変換
🔹 中級
- ビット演算(AND、OR、XOR、NOT)
- 負の数の表現(2の補数)
- シフト演算(論理シフト、算術シフト)
🔹 上級
- 浮動小数点の表現(IEEE754 形式など)
- ビットマスク処理(実際のプログラムで多用)
🧠 じゃあ今日は「2進数⇔10進数の変換」をやってみよう!
● 例1:10進数 → 2進数
10進数の 13 を2進数にすると?
13 ÷ 2 = 6 余り1
6 ÷ 2 = 3 余り0
3 ÷ 2 = 1 余り1
1 ÷ 2 = 0 余り1
→ 下から読んで 1101(二進数)
● 例2:2進数 → 10進数
2進数の 1011 を10進数にすると?
1×2³ + 0×2² + 1×2¹ + 1×2⁰
= 8 + 0 + 2 + 1 = 11(十進数)
✍️ 今日の練習問題!
Q1. 次の10進数を2進数に変換してください。
(1)7 (2)18 (3)31
—–答え——-
(1)7
→ 7 ÷ 2 = 3 余り 1
→ 3 ÷ 2 = 1 余り 1
→ 1 ÷ 2 = 0 余り 1
→ 下から読むと 111
✅ 答え:111(2進数)
(2)18
→ 18 ÷ 2 = 9 余り 0
→ 9 ÷ 2 = 4 余り 1
→ 4 ÷ 2 = 2 余り 0
→ 2 ÷ 2 = 1 余り 0
→ 1 ÷ 2 = 0 余り 1
→ 下から読むと 10010
✅ 答え:10010(2進数)
(3)31
→ 31 ÷ 2 = 15 余り 1
→ 15 ÷ 2 = 7 余り 1
→ 7 ÷ 2 = 3 余り 1
→ 3 ÷ 2 = 1 余り 1
→ 1 ÷ 2 = 0 余り 1
→ 下から読むと 11111
✅ 答え:11111(2進数)
Q2. 次の2進数を10進数に変換してください。
(1)1001 (2)1110 (3)101010
(1)1001
→ 1×2³ + 0×2² + 0×2¹ + 1×2⁰
→ 8 + 0 + 0 + 1 = 9
✅ 答え:9(10進数)
(2)1110
→ 1×2³ + 1×2² + 1×2¹ + 0×2⁰
→ 8 + 4 + 2 + 0 = 14
✅ 答え:14(10進数)
(3)101010
→ 1×2⁵ + 0×2⁴ + 1×2³ + 0×2² + 1×2¹ + 0×2⁰
→ 32 + 0 + 8 + 0 + 2 + 0 = 42
✅ 答え:42(10進数)
とりあえずここまでは何とかついてこれています・・・が、
次の「基数変換」はちょっと苦労してしまうかも・・・。