【Day8】2進数などの計算・・苦手です

投稿者: | 2025年6月16日

✅ なぜ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種類の状態」を正確に区別できる回路が必要になります。
でも、それは作るのが非常に難しいし、不安定です。


🔁 だからこそ、私たちは…

人間は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進数にすると?

● 例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進数)