U「2進数って数学の話では?」と最初は思っていました。でも試験問題を見ると、8ビットで表せる最大値は? 16進数のFFは10進数でいくつ? 補数を使った引き算——これらが毎年のように出題されています。仕組みを理解してしまえば計算はシンプルで、得点源にもなると感じています。
この記事でわかること
- 2進数・8進数・16進数の変換方法
- 補数(1の補数・2の補数)を使った引き算
- ビット数と表現できる値の範囲
- 文字コード(ASCII・Unicode・JIS)の種類
- 論理演算(AND・OR・XOR・NOT)の基礎
目次
2進数・16進数の変換——まず仕組みを理解する
基数と桁の重み
10進数:0〜9の10種類の数字。各桁の重みは10の累乗(1・10・100…)2進数:0と1の2種類。各桁の重みは2の累乗(1・2・4・8・16…)
16進数:0〜9とA〜F(A=10, B=11, C=12, D=13, E=14, F=15)。各桁の重みは16の累乗
変換例:2進数 → 10進数
1101₂ = 1×8 + 1×4 + 0×2 + 1×1 = 13₁₀
変換例:16進数 → 10進数
FF₁₆ = 15×16 + 15×1 = 240 + 15 = 255₁₀
2進数 ↔ 16進数の変換コツ:2進数4桁が16進数1桁に対応
1111 1010₂ → 1111=F, 1010=A → FA₁₆
ビット数と表現できる値の範囲
| ビット数 | 表現できる値の数 | 符号なし最大値 | 符号あり範囲 |
|---|---|---|---|
| 4ビット | 2⁴ = 16通り | 0〜15 | −8〜+7 |
| 8ビット(1バイト) | 2⁸ = 256通り | 0〜255 | −128〜+127 |
| 16ビット | 2¹⁶ = 65,536通り | 0〜65,535 | −32,768〜+32,767 |
| 32ビット | 2³² ≈ 42億通り | 0〜約42億 | 約±21億 |
覚え方のポイント
- nビットで表現できる値の数は 2ⁿ通り
- 符号なし最大値は 2ⁿ − 1(0から始まるので1を引く)
- 8ビット=1バイト。この関係は必須
- IPv4アドレスは32ビット(4バイト)。約42億アドレス
補数——コンピュータが引き算をする仕組み
2の補数を使った引き算
コンピュータは引き算を「加算回路だけ」で処理する。そのために「引く数の2の補数」を作って足す。2の補数の作り方:
① 各ビットを反転(0→1、1→0)する → 1の補数
② 1を加える → 2の補数
計算例:10 − 3 = 7(4ビットで計算)
3の2進数 = 0011
1の補数 = 1100
2の補数 = 1101
10(1010)+ 3の2の補数(1101)= 10111 → 上位の桁あふれを捨てると 0111 = 7 ✓
文字コードの種類
| 文字コード | 特徴 | 用途 |
|---|---|---|
| ASCII | 7ビット・128文字。英数字・記号を収録 | 英語環境の標準コード |
| Unicode(UTF-8等) | 世界中の文字を統一的に扱う。可変長(1〜4バイト) | Webの世界標準(HTML等) |
| Shift-JIS | 半角1バイト・全角2バイト。日本語を扱える | Windowsの日本語環境(レガシー) |
| EUC-JP | 日本語対応。UNIX系で普及 | Linuxサーバの日本語処理(レガシー) |
| JIS(ISO-2022-JP) | エスケープシーケンスで切り替え。電子メールで使われた | メール(レガシー) |
論理演算(AND・OR・XOR・NOT)
| 演算 | 記号 | ルール | 例(A=1, B=0) |
|---|---|---|---|
| AND(論理積) | ∧ / & | 両方1のとき1 | 1 AND 0 = 0 |
| OR(論理和) | ∨ / | | どちらか1のとき1 | 1 OR 0 = 1 |
| XOR(排他的論理和) | ⊕ / ^ | 異なるとき1 | 1 XOR 0 = 1 |
| NOT(否定) | ¬ / ~ | 0→1・1→0に反転 | NOT 1 = 0 |
マスク演算——特定ビットを抽出・変更する技術
- AND演算でビット抽出:マスクの1の位置のビットだけ取り出せる
- OR演算でビットセット:特定ビットを強制的に1にできる
- XOR演算でビット反転:特定ビットだけ0↔1を入れ替えられる
- ネットワークのサブネットマスク計算もANDを使っている
Uのメモ
学習メモ
- 16進数1桁 = 2進数4桁(ニブル)。FF₁₆ = 1111 1111₂ = 255₁₀
- nビットで2ⁿ通り。8ビット=256通り・符号なし最大255
- 2の補数:ビット反転(1の補数)+1。引き算を加算で実現
- 文字コード:Webの世界標準はUTF-8。ASCIIは7ビット128文字
- 論理演算:AND=両方1・OR=どちらか1・XOR=異なれば1









