目次
はじめに
「2進数」「16進数」「2の補数」——ITの勉強を始めたときに必ず出てくる言葉ですよね。
でも実際に見てみると、「なんだか数字がいっぱい並んでいて、難しそう…」と感じる方も多いと思います。
僕もそうでした・・・しかし大丈夫です。
数学と思って見てしまうから苦手意識で目をそらしてしまいますが、文系が得意とする推理小説の暗号解読だと思えば、シンプルすぎてつまらない程度のものです。
この3つは、コンピューターが情報を扱う“仕組みの言葉”であり、仕組みさえ理解すればとてもシンプル。
この記事では、初心者の方にもわかるように、「n進数の考え方」から「2の補数(負の数の表現方法)」までをやさしく解説します。
一歩ずつ理解していきましょう!
コンピューターとn進数
なぜ「2進数」が使われるの?
コンピューターは、電気の「オン/オフ」で情報を表現しています。
つまり「電流が流れている → 1」「流れていない → 0」というように、0と1の二値だけで全てを表現しているのです。
このように“二つの状態”でデータを扱う仕組みを2進数(二進数)と呼びます。
n進数とは?
n進数とは、「1桁の数で表せる最大値が n−1 の数の表現方法」です。
例えば:
- 10進数 → 0〜9
- 2進数 → 0〜1
- 16進数 → 0〜9 と A〜F(A=10, F=15)
といった具合に、使う数字の種類が変わるだけです。
どうして16進数を使うの?
人間にとって2進数は桁が多く読みにくいため、2進数4桁を1桁にまとめられる16進数がよく使われます。
例:1111₂ = F₁₆
1010₂ = A₁₆
こうして16進数を使うことで、可読性と省スペース性が大きく向上します。
2進数とは
2進数の基本構造
2進数では、各桁が「2の何乗」を意味します。
例:1011₂
= 1×2³ + 0×2² + 1×2¹ + 1×2⁰
= 8 + 0 + 2 + 1
= 11(10進数)
小数の扱い方
小数部分も同様に「2のマイナス乗」で表します。
例:0.101₂
= 1×2⁻¹ + 0×2⁻² + 1×2⁻³
= 0.5 + 0 + 0.125
= 0.625(10進数)
このように、整数部は左から右へ2の累乗、小数部は右から左へ2のマイナス累乗で計算します。
n進数と10進数の変換
n進数 → 10進数(整数)
各桁に「その進数の累乗」を掛けて足し合わせるだけです。
例:1101₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 13₁₀
10進数 → n進数(整数)
「割り算を繰り返す」方法(すだれ算)で変換できます。
例:
10を2進数にする場合
10 ÷ 2 = 5 … 0
5 ÷ 2 = 2 … 1
2 ÷ 2 = 1 … 0
1 ÷ 2 = 0 … 1
→ 下から読むと 1010₂
小数の変換
10進 → 2進
小数部分に2をかけて整数部分を順に取り出します。
例:
0.625 × 2 = 1.25 → 整数1
0.25 × 2 = 0.5 → 整数0
0.5 × 2 = 1.0 → 整数1
→ 0.101₂
n進数 ⇄ m進数
一度10進数を経由するのが一般的ですが、2進数 ⇄ 16進数 は特別で、直接変換が簡単です。
2進数4桁 = 16進数1桁なので、10101111₂ = AF₁₆
のようにすぐ変換できます。
16進数の基礎と使われ方
16進数とは?
16進数は、0〜9に加えてA〜F(10〜15)までを1桁として使う数の表現方法です。
例:
10進数の「15」は、16進数では「F」になります。
16進数が使われる場面
- プログラミング:メモリアドレスや色コードを表すとき
- Webデザイン:カラーコードで使用(例:#FF0000 は赤)
- ハードウェア:バイナリデータを人間が見やすくするため
16進数と2進数の関係
2進数4桁が16進数1桁に対応します。
2進数 | 16進数 |
---|---|
0000 | 0 |
0001 | 1 |
0010 | 2 |
0100 | 4 |
1000 | 8 |
1010 | A |
1111 | F |
このように、桁をまとめて変換できるのが大きなメリットです。
2の補数とは?(負の数の表現)
なぜ必要なの?
コンピューターは「0と1」しか理解できません。
そのため、マイナスの数も「0と1の組み合わせ」で表現する必要があります。
これを可能にするのが2の補数(Two’s Complement)です。
2の補数の求め方
- 正の数を2進数で表す
- ビットを反転(0→1, 1→0)
- 1を足す
例:5₁₀
→ 00000101₂
反転 → 11111010
+1 → 11111011
→ −5 の2の補数表現
2の補数の特徴
- 加減算を同じ回路で処理できる(計算が簡単)
- ビット数が決まっていれば、0を一意に表せる
- 符号なしとの切り替えもビットで管理できる
よくある落とし穴
- 桁数(8bit / 16bit)を間違えると符号がズレる
- オーバーフローに注意(範囲外の数値は表現できない)
よくある質問Q&A
質問 | 回答 |
---|---|
Q. 10進数と2進数、どちらを使えばいい? | 人間が見るときは10進数、 コンピューター内部は2進数です。 |
Q. 小数変換で割り切れない! | 割り切れない数は循環小数になります。 必要な桁数で丸めましょう。 |
Q. 2の補数以外の表現はある? | ありますが、現在は2の補数が主流です。 符号+絶対値表現は古い方式です。 |
まとめ
- コンピューターの世界では「2進数」が基本
- 16進数は、人間が見やすいように整理された表現
- 小数変換や2の補数は、情報処理の基礎スキル
- 仕組みを理解すれば「数字の言語」も怖くない!
学習のヒント
- 紙に書いて手を動かすと理解が早まります
- 計算サイトや変換ツールも使ってOK
- 苦手意識をなくすことが一番大切。