基数変換ツールとは?
基数変換とは、数値そのものの大きさは変えずに「表記の仕方」だけを変えることです。コンピューターやプログラミングの現場では、2進数(基数2)・8進数(基数8)・10進数(基数10)・16進数(基数16)の間での変換が日常的に行われます。このツールはそれらに加え、0〜9のあとにA〜Zを使うことで、2から36までのあらゆる基数に対応しています。
使い方
変換したい数値を入力し、その数値が現在何進数で書かれているか(変換元の基数)と、何進数に変換したいか(変換先の基数)を指定します。11進数以上ではアルファベットを桁として使います(A=10、B=11、…Z=35)。あわせて10進数(基数10)の値も表示されるので、計算結果の確認に便利です。
計算の仕組み
変換は2段階で行われます。まず入力値を、各桁に重みを掛けて足し合わせる「位取り記数法」によって10進数に直します。具体的には、各桁の数字に「変換元の基数のその桁の位置に応じた累乗」を掛け、すべて合計します。次に、得られた10進数の値を「割り算の繰り返し」で変換先の基数に直します。変換先の基数で割って余りを記録し、商に対して同じ処理を繰り返し、最後に余りを逆順に並べれば完成です。
$$\text{Result} = \left( \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \right)_{10} \longrightarrow \text{To Base}$$
$$\begin{gathered} V_{10} = \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \\[1.5em] \text{Result} = \left( V_{10} \right)_{\text{To Base}} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= \text{digit } i \text{ of } \text{Number} \\ k &= \text{number of digits} \end{aligned} \right. \end{gathered}$$
具体例
2進数の1010を10進数に変換してみましょう。位取りで計算すると、$$1\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0 = 8 + 0 + 2 + 0 = 10$$となります。逆方向の例として、10進数の255を16進数に変換すると、\(255 \div 16 = 15\) 余り15(F)、\(15 \div 16 = 0\) 余り15(F)となり、答えはFFです。
一般的な進数と数字集
進数(基数)は利用可能な異なる数字記号の数と、各位置の重みを定義します。以下の表は、コンバーターで処理される最も広く使用されている進数、それらが使用する記号、および各進数が通常どこで適用されるかをまとめています。
| 進数 | 名称 | 数字集 | 典型的な用途 |
|---|---|---|---|
| 2 | 二進法 | 0–1 | デジタル電子機器とコンピューターメモリにおける原始的表現。すべてのビットはオン状態またはオフ状態です。 |
| 8 | 八進法 | 0–7 | 3つの二進法をコンパクトにグループ化。Unix/Linuxファイル権限モード(例:755)。 |
| 10 | 十進法 | 0–9 | 日常的な人間の計算、通貨、計測、一般的な計数。 |
| 16 | 十六進法 | 0–9、A–F | バイト、メモリアドレス、カラーコード(例:#FF8800)、機械語のコンパクトな表示。 |
| 36 | 36進法 | 0–9、A–Z | 数字とラテンアルファベットを使用した最大進数。短い英数字IDとURLスラッグ。 |
十進法・二進法・八進法・十六進法の変換表
以下の参照表は、一般的な十進数値とそれに対応する二進法(2進数)、八進法(8進数)、十六進法(16進数)を並べて示しています。下の行は、一般的なバイトとワード境界を示す2の累乗を含みます。
| 十進法 | 二進法 | 八進法 | 十六進法 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
255(1バイトの最大値)は正確に8つの二進数の1と2つの十六進数のFで表現されることに注意してください。各十六進数の数字は正確に4ビットに対応します。
重要な用語の説明
- 進数・基数
- 数値体系が使用する一意の数字記号の数。10進法(十進法)は10個の記号(0–9)を使用。2進法(二進法)は2つ(0–1)を使用します。「基数」は進数の正式な数学的同義語です。
- 位取り記数法
- 数字の値がその位置に依存するシステム。各位置は基数を累乗した値に等しい重みを持ちます。基数\(b\)では、位置\(i\)(右から0から数える)の数字は\(d_i \cdot b^{\,i}\)に寄与します。
- 数字
- 数値内の単一の記号。有効な数字は進数によって制限されます。16進法では0–9とA–Fが許容され、A–Fは十進法の値10–15を表します。
- 最上位数字(MSD)
- 左端の数字で、最大の位置重みを持ち、したがって数値に最も大きな影響を与えます。
- 最下位数字(LSD)
- 右端の数字で、位置重み\(b^{0}=1\)を持ちます。これを変更すると値は最小の量だけ変わります。
- 二進法、八進法、十六進法
- それぞれ2進数、8進数、16進数の数値体系。基数が2の累乗であるため、コンピューティングで好まれています。ビットのグループが正確に変換されます。八進数あたり3ビット、十六進法あたり4ビット。
- 商と余り
- 整数除算の2つの結果。十進法から別の進数への変換に使用されます。目的の基数で繰り返し除算し、各余りを数字として記録します(最も桁が低い順)。商が0に達するまで続けます。
よくある質問
基数の最大値はいくつですか? 36です。標準的な桁の記号として0〜9とA〜Zの合計36種類が使えるためです。
マイナスの数にも対応していますか? はい。先頭のマイナス記号はそのまま結果に反映されます。
小数や分数も変換できますか? このバージョンでは整数(自然数)のみに対応しています。