10進数→16進数変換ツールの使い方
- 10進数を入力します。1行に1つずつ入力すれば、リストもまとめて変換できます。負の数や
0.75のような小数にも対応しています。 - 16進数の結果が2進数・8進数とあわせてすぐに表示されます。計算過程の表では、16で割るごとの商と余りを確認できます。
- 負の数を2の補数の16進数で表すには、符号付き(2の補数)にチェックを入れてビット幅を選びます。−1は8ビットで
FF、32ビットでFFFFFFFFになります。
10進数を16進数に変換する計算方法
16で繰り返し割る方法を使います。
- 数値を16で割り、余り(0~15)を書き留めます。
- 商をさらに16で割り、商が0になるまで繰り返します。
- 各余りを16進数の1桁(10 = A、11 = B、12 = C、13 = D、14 = E、15 = F)に置き換え、最後の余りから最初の余りへ順に並べます。
例:6719を16進数に変換します。
| 割り算 | 商 | 余り |
|---|---|---|
| 6719 ÷ 16 | 419 | 15 = F |
| 419 ÷ 16 | 26 | 3 |
| 26 ÷ 16 | 1 | 10 = A |
| 1 ÷ 16 | 0 | 1 |
余りを下から上へ読むと1A3Fになります。検算:1 × 4096 + 10 × 256 + 3 × 16 + 15 = 6719。
10進数の小数を16進数に変換する
小数点以下の部分は、16で割るのではなく16を掛けます。各積の整数部分が、次の16進数の桁になります。0.75 × 16 = 12なので、0.75は16進数で0.Cです。
16進数では割り切れない小数もあります。0.1 × 16 = 1.6で最初の桁は1、次に0.6 × 16 = 9.6で9となり、以降は9が無限に続くため、0.1 = 0.1999…です。このツールではこうした値を16進数12桁に丸め(0.19999999999A)、≈の記号を付けて表示します。
負の10進数を16進数で表す(2の補数)
コンピューターは、負の数−nをwビットで2ʷ − nとして格納します。ビットパターンを求めるには、負の値に2ʷを足してから16進数に変換します。8ビットの−26は256 − 26 = 230 = E6です。
| 10進数 | 8ビット | 16ビット | 32ビット |
|---|---|---|---|
| −1 | FF | FFFF | FFFFFFFF |
| −2 | FE | FFFE | FFFFFFFE |
| −26 | E6 | FFE6 | FFFFFFE6 |
| −128 | 80 | FF80 | FFFFFF80 |
よくある質問
255は16進数でいくつですか?
255は16進数でFFです。255 ÷ 16 = 15 余り15、続いて15 ÷ 16 = 0 余り15となり、どちらの余りもFと書きます。FFは1バイトで表せる最大の値です。
Excel・Python・JavaScriptで10進数を16進数に変換するには?
ExcelとGoogleスプレッドシートでは=DEC2HEX(255)でFFになります。Pythonではformat(255, 'X')でFF、hex(255)で0xffが得られます。JavaScriptでは(255).toString(16)でffです。Excelでは負の数が10桁の2の補数で返され、=DEC2HEX(-1)はFFFFFFFFFFになります。
0.1が16進数で正確に表せないのはなぜですか?
1/10は16分の1、256分の1…といった値の有限個の和で表せないため、16進数では桁が無限に繰り返されます(0.1999…)。10進数で1/3 = 0.333…となるのと同じです。2分の1、4分の1、8分の1、16分の1を組み合わせた小数なら正確に表せ、16進数で0.5 = 0.8、0.75 = 0.Cとなります。
非常に大きな数も変換できますか?
はい。任意精度演算を使っているため、18446744073709551616(2⁶⁴)も正確に10000000000000000に変換できます。通常のJavaScriptの数値で正確に扱える上限2⁵³をはるかに超える値です。