以下の3パターンを押さえておく

  1. n進数→10進数の変換
  2. 10進数→n進数の変換
  3. 2進数↔8/16進数の変換

1. n進数→10進数への変換

各桁の位取り(重み)と各桁の数字を掛け算して合計する

位取りの考え方:右から0番目、1番目、2番目…として、基数のn乗が重みになる

例:1011(2)を10進数に

1    0    1    1
↓    ↓    ↓    ↓
2³   2²   2¹   2⁰
8    4    2    1
↓    ↓    ↓    ↓
1×8 + 0×4 + 1×2 + 1×1 = 11(10)

例:3A.C(16)を10進数に

3      A      .      C
↓      ↓             ↓
16¹    16⁰           16⁻¹
16     1             1/16
↓      ↓             ↓
3×16 + 10×1    +     12×(1/16)
= 48 + 10 + 0.75 = 58.75(10)

2. 10進数→n進数への変換

整数部の変換

n で割り算を繰り返し、余りを下から上へ並べる

例:23(10)を2進数に

23 ÷ 2 = 11 余り 1  ←最下位ビット(LSB)
11 ÷ 2 = 5  余り 1
5  ÷ 2 = 2  余り 1
2  ÷ 2 = 1  余り 0
1  ÷ 2 = 0  余り 1  ←最上位ビット(MSB)
 
答え:10111(2)

小数部の変換

n を掛け算を繰り返し、整数部を上から下へ並べる

例:0.625(10)を2進数に

0.625 × 2 = 1.25  → 整数部 1  ←最上位
0.25  × 2 = 0.5   → 整数部 0
0.5   × 2 = 1.0   → 整数部 1  ←最下位
(小数部が0になったら終了)
 
答え:0.101(2)

例:0.3(10)を2進数に(循環小数になる場合)

0.3 × 2 = 0.6  → 0
0.6 × 2 = 1.2  → 1
0.2 × 2 = 0.4  → 0
0.4 × 2 = 0.8  → 0
0.8 × 2 = 1.6  → 1
0.6 × 2 = 1.2  → 1  ←ループ開始
...
 
答え:0.010011001100...(2) = 0.0(1001)...(2)
※適当な桁数で打ち切る

3. 2進数↔8/16進数の変換

2進数→8進数:3桁区切り

2進数→16進数:4桁区切り

各ブロックを変換先の進数で読む(桁が足りない場合は左に0を補う)

例1:2進数 1101101.001101 を16進数に

  0110  1101  .  0011  0100
  8421  8421     8421  8421
  0420  8401     0021  0400
    6     D    .    3     4
 
答え:6D.34(16)

例2:2進数 111010110.101 を8進数に

  111  010  110  .  101
  421  421  421     421
  421  020  420     401
   7    2    6   .   5
 
答え:726.5(8)

例3:16進数 D4.C を2進数に

D → 13(10) → 1101(2)
4 → 4(10)  → 0100(2)
C → 12(10) → 1100(2)
 
答え:11010100.1100(2)

例4:8進数 73.4 を2進数に

7 → 111(2)
3 → 011(2)
4 → 100(2)
 
答え:111011.100(2)