デジタル回路 回路 数の表現 高専2年生

【数の表現②】基数変換

前回の授業(【論理代数①】数の表現 )で紹介した2進数を人間に伝えるためには10進数へ変換する必要があります。時には2進数との変換が容易な8進数や16進数が用いられることがあり,今回の授業ではその変換について学んでゆきます。

表1 10進数とその他基数の比較

10進数2進数8進数16進数
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

10進ー2進変換

10進数を2進数に変換する手順は以下のようになります。

  1. 除算のスタート: 10進数の値を2で除算します。この時の商と余りをメモします。
  2. 余りの記録: 最初の除算の余りが2進数の最下位(右端)の値となります。
  3. 商を使っての繰り返し: 前のステップの商を新しい数値として再び2で除算します。この新しい余りは2進数の次の位置の値となります。
  4. 終了条件: 商が0になるまでステップ2と3を繰り返します。
  5. 結果の読み取り: 全ての余りを逆順(最初の余りを最後に)に並べると、それが10進数を2進数に変換した結果となります。

例: 10進数の13を2進数に変換する場合の手順を詳しく見てみましょう。

  1. 13 ÷ 2 = 6...余り1
    → 最初の余りは1
  2. 6 ÷ 2 = 3...余り0
    → 2つ目の余りは0
  3. 3 ÷ 2 = 1...余り1
    → 3つ目の余りは1
  4. 1 ÷ 2 = 0...余り1
    → 4つ目の余りは1

上記の余りの値を逆順に並べると「1101」となります。したがって、10進数の13は2進数では「1101」となります。

筆算で示すと以下の通りです。

    $$ \begin{tabular}{llccc} 2&\large{) }&1&3&\\ \cline{2-4} 2&\large{) }&& 6&…1\\ \cline{2-4} 2&\large{) }&& 3&…0\\ \cline{2-4} 2&\large{) }&& 1&…1\\ \cline{2-4} &&&0&…1 \end{tabular} $$

2進ー10進変換

2進数を10進数に変換する手順は以下の通りです。

  1. 各桁の確認: 2進数の各桁が表す数値を確認します。最右端(最下位)は2^0、その左は2^1、さらにその左は2^2という風に、左へ進むごとに2のべき乗が1つ増えていきます。
  2. 桁の値を乗算: 各桁の2進数の値(0または1)を、その桁が表す2のべき乗の数値と乗算します。
  3. 乗算結果の合計: ステップ2で得られた各乗算結果を合計すると、それが2進数を10進数に変換した結果となります。

: 2進数の1101を10進数に変換する場合の手順を詳しく見てみましょう。

  1. 各桁の値を確認します。
    1101_{(2)}
    各桁のべき乗は以下のようになります。
    2^3 \quad 2^2 \quad 2^1 \quad 2^0
  2. 各桁の値を乗算します。
    1 \times 2^3 = 8 \\ 1 \times 2^2 = 4 \\ 0 \times 2^1 = 0 \\ 1 \times 2^0 = 1
  3. すべての乗算結果を合計します。
    8 + 4 + 0 + 1 = 13_{(10)}

したがって、2進数の1101は10進数で13となります。

2進ー8進変換

2進数から8進数への変換は、基本的には2進数を3桁ずつグループ化して変換する方法を取ります。これは8進数の1桁が、2進数の3桁(2^2, 2^1, 2^0)で表現されるためです。

以下に、2進数を8進数に変換する手順を詳しく説明します:

  1. 2進数を右から3桁ずつに区切る: 与えられた2進数を、右端から3桁ずつに区切ります。左端で桁数が足りない場合は、0で埋めます。
  2. 各グループを8進数に変換: それぞれの3桁の2進数グループを、対応する8進数の数値に変換します。以下は、3桁の2進数とそれに対応する8進数の関係です:
    000_{(2)} \rightarrow 0_{(8)} \\001_{(2)} \rightarrow 1_{(8)} \\010_{(2)} \rightarrow 2_{(8)} \\011_{(2)} \rightarrow 3_{(8)} \\100_{(2)} \rightarrow 4_{(8)} \\101_{(2)} \rightarrow 5_{(8)} \\110_{(2)} \rightarrow 6_{(8)} \\111_{(2)} \rightarrow 7_{(8)}
  3. 結果を並べる: ステップ2で得られた8進数の桁を、左から右へと並べることで、完全な8進数の数値が得られます。

: 2進数1101101_{(2)}を8進数に変換する場合の手順を詳しく見てみましょう。

  1. 右から3桁ずつに区切ります。
    001_{(2)}, 101_{(2)}, 101_{(2)}
  2. 各グループを8進数に変換します。
    001_{(2)} \rightarrow 1_{(8)}\\101_{(2)} \rightarrow 5_{(8)}\\101_{(2)} \rightarrow 5_{(8)}
  3. 結果を並べます。
    155_{(8)}

したがって、2進数の1101101_{(2)}は8進数で155_{(8)}となります。

また、その逆を行えば8進数を2進数に変換する事が可能です。このことから10進数よりも8進数の方が2進数との親和性が高い事が分かります。

2進ー16進変換

2進-8進の変換と同様,16進数も直接変換することが出来ます。基本的には2進数を4桁ずつグループ化して変換する方法を取ります。これは、16_{(10)}(16進数)が2^4のため、16進数の1桁が2進数の4桁で表現されるからです。

以下に、2進数を16進数に変換する手順を詳しく説明します:

  1. 2進数を右から4桁ずつに区切る: 与えられた2進数を、右端から4桁ずつに区切ります。左端で桁数が足りない場合は、0で埋めます。
  2. 各グループを16進数に変換: それぞれの4桁の2進数グループを、対応する16進数の数値や文字に変換します。
    以下は、4桁の2進数とそれに対応する16進数の関係です:
     0000_{(2)} &\rightarrow 0_{(16)} \\ 0001_{(2)} &\rightarrow 1_{(16)} \\0010_{(2)} &\rightarrow 2_{(16)} \\ 0011_{(2)} &\rightarrow 3_{(16)} \\ 0100_{(2)} &\rightarrow 4_{(16)} \\ 0101_{(2)} &\rightarrow 5_{(16)} \\ 0110_{(2)} &\rightarrow 6_{(16)} \\ 0111_{(2)} &\rightarrow 7_{(16)} \\ 1000_{(2)} &\rightarrow 8_{(16)} \\ 1001_{(2)} &\rightarrow 9_{(16)} \\ 1010_{(2)} &\rightarrow A_{(16)} \\ 1011_{(2)} &\rightarrow B_{(16)} \\ 1100_{(2)} &\rightarrow C_{(16)} \\ 1101_{(2)} &\rightarrow D_{(16)} \\ 1110_{(2)} &\rightarrow E_{(16)} \\ 1111_{(2)} &\rightarrow F_{(16)}
  3. 結果を並べる: ステップ2で得られた16進数の桁を、左から右へと並べることで、完全な16進数の数値が得られます。

: 2進数 1101101101_{(2)} を16進数に変換する場合の手順を詳しく見てみましょう。

  1. 右から4桁ずつに区切ります。
    0011_{(2)}, 0110_{(2)}, 1101_{(2)}
  2. 各グループを16進数に変換します。
    0011_{(2)} \rightarrow 3_{(16)}
    0110_{(2)} \rightarrow 6_{(16)}
    1101_{(2)} \rightarrow D_{(16)}
  3. 結果を並べます。
    36D_{(16)}

したがって、2進数の 110110110101_{(2)} は16進数で 36D_{(16)} となります。

確認テスト

数の表現②確認テストはこちら

Follow me!

-デジタル回路, 回路, 数の表現, 高専2年生
-, , ,

PAGE TOP