N進数の相互変換ツールとは
このツールは、ある基数で表記した0以上の整数を、よく使われる5つの進数――10進数(基数10)、16進数(基数16)、8進数(基数8)、6進数(基数6)、2進数(基数2)――へ一度にまとめて変換します。国や地域ごとのルールに左右されない純粋な数学的計算ツールなので、世界中どこで使っても結果は同じです。プログラマーや学生、電子工作の愛好家が、同じ値の表記をすばやく切り替えたいときに役立ちます。
使い方
「値 (x)」の入力欄に、選んだ基数で有効な数字を使って数値を入力します。入力する基数はラジオボタンで選択してください。16進数では A〜F のアルファベット(大文字・小文字どちらでも可)が使えます。6進数で有効なのは 0〜5、8進数は 0〜7、2進数は 0〜1 のみです。あとは5種類すべての変換結果を読み取るだけです。対応範囲は \(0\) 〜 \(2^{64} - 1\) で、整数のみに対応しています(小数や負の数には対応していません)。
計算式の解説
入力値の読み取りは、上位の桁から下位の桁へ順に処理します。 $$N_{10} = \sum_{i=0}^{k-1} d_i \cdot \text{Base}^{\,i}$$ で、0〜9 はそのまま 0〜9 に、A〜F は 10〜15 に対応します。目的の基数 \(b\) へ変換するときは、割り算を繰り返します。\(r = N \bmod b\) を求めて桁として記録し、\(N = N \div b\) に更新する――これを \(N = 0\) になるまで繰り返し、最後に集めた桁を逆順に並べます。16進数では、余りの 10〜15 が A〜F になります。
計算例
10進数で 129 を入力した場合。16進数:\(129 = 8 \times 16 + 1 \to\) 「81」。8進数:\(129 = 2 \times 64 + 0 \times 8 + 1 \to\) 「201」。6進数:\(3 \times 36 + 3 \times 6 + 3 = 129 \to\) 「333」。2進数:\(128 + 1 \to\) 「10000001」。
進数変換リファレンステーブル
以下の表は、一般的な非負整数を5つの数値体系で表現しています:十進法(基数10)、十六進法(基数16)、八進法(基数8)、六進法(基数6)、二進法(基数2)。コンバーターの検証や、15、16、255、および2の累乗などの最頻出の境界値を覚えるのに使用してください。
| 十進法(10) | 十六進法(16) | 八進法(8) | 六進法(6) | 二進法(2) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 | 10 |
| 5 | 5 | 5 | 5 | 101 |
| 6 | 6 | 6 | 10 | 110 |
| 7 | 7 | 7 | 11 | 111 |
| 8 | 8 | 10 | 12 | 1000 |
| 10 | A | 12 | 14 | 1010 |
| 15 | F | 17 | 23 | 1111 |
| 16 | 10 | 20 | 24 | 10000 |
| 32 | 20 | 40 | 52 | 100000 |
| 64 | 40 | 100 | 144 | 1000000 |
| 100 | 64 | 144 | 244 | 1100100 |
| 255 | FF | 377 | 1103 | 11111111 |
255(8ビットバイトが保持できる最大値)は十六進法ではFFで、二進法では8個の1です。このため、1つの16進数ペアは1バイトに正確にマップされます。
定義と用語集
- 基数
- 位置記数法が使用する異なる数字記号の数、および1列から次の列へと桁の値が増加する倍率。基数\(b\)は\(0\)から\(b-1\)までの数字を使用します。
- 十進法(基数10)
- 0~9の10個の数字を使用する日常の数値体系。各列は10の累乗です:1の位、10の位、100の位など。
- 十六進法(基数16)
- 0~9およびA~Fの16個の記号を使用する16進法。コンピューティングで広く使用されています。各16進数字は正確に4つの二進ビット(ニブル)を表します。
- 八進法(基数8)
- 0~7の数字を使用する8進法。各八進数字は正確に3つの二進ビットに対応します。初期のコンピューティングやUnixファイルパーミッションで歴史的に一般的でした。
- 六進法(基数6)
- 0~5の数字を使用する6進法。実践ではあまり一般的ではありませんが、教育ツールとして、また特定の数学的文脈で有用です。
- 二進法(基数2)
- 0と1の数字(ビット)のみを使用する2進法。デジタル電子機器の本質的な言語であり、各ビットは開/閉の状態です。
- 数字値(A~F = 10~15)
- 10より大きい基数では、文字が9を超える数字セットを拡張します。十六進法では:A = 10、B = 11、C = 12、D = 13、E = 14、F = 15です。
- 位置記法
- 数字の寄与がその位置に依存するシステム。数値の値は\(N_{10} = \sum_{i=0}^{k-1} d_i \cdot b^{\,i}\)です。ここで、\(d_i\)は位置\(i\)(右から0から数えます)の数字で、\(b\)は基数です。
- 最上位ビット(MSD)
- 数値の左端の数字で、最高の桁の値を持ち、全体の大きさに最も寄与します。
- 最下位ビット(LSD)
- 右端の数字で、1の位(\(b^0\))を占め、値に最小限の寄与をします。
- 符号なし64ビット範囲
-
符号なし64ビット整数は0から\(2^{64}-1 = 18{,}446{,}744{,}073{,}709{,}551{,}615\)までの値を表現できます。十六進法では
FFFFFFFFFFFFFFFF(16個のF)です。
よくある質問
12.5 のような小数も変換できますか? いいえ、整数のみに対応しています。負の数は使えますか? いいえ。範囲は 0 から始まります。16進数の入力は大文字・小文字を区別しますか? いいえ。「ff」と「FF」はどちらも 255 として読み取られ、出力される16進数は常に大文字になります。