16進数から10進数への変換ツール

メモリアドレスや32ビットのエラーコード、生のUTF-8コードポイントを読み解く作業は、多くの場合10進数として理解したい16進数の値から始まります。この変換ツールは、0xプレフィックスの有無を問わずあらゆる16進数入力を受け取り、任意精度の演算で10進数の値を返します。そのため、64ビット以上の値でもすべての桁が正確に保たれます。

16進数を10進数に変換する方法

  1. 1

    16進数の値を入力する

    任意の16進数を貼り付けます:`0x1F4`、`1F4`、`$1f4`、大文字・小文字のどちらでも構いません。

  2. 2

    区切り文字は無視される

    スペース、アンダースコア、ハイフンは取り除かれます。`DE AD BE EF`も`DEADBEEF`も同じ入力として扱われます。

  3. 3

    10進数を読み取る

    出力には任意精度の演算を使用するため、`0xFFFFFFFFFFFFFFFF`は完全な20桁の10進数を返します。

  4. 4

    コピーして活用する

    得られた10進数を電卓、表計算ソフト、デバッガーに貼り付けます。

16進数を10進数として読む

16進数は16種類の数字を使います:0-9に続いてA-F(10〜15)です。16進数の値は、各桁の数字に16のべき乗を掛けた合計になります。

桁の重み

位置(右から左) 16のべき乗 10進数での重み
0 16^0 1
1 16^1 16
2 16^2 256
3 16^3 4,096
4 16^4 65,536
5 16^5 1,048,576
6 16^6 16,777,216
7 16^7 268,435,456
8 16^8 4,294,967,296

したがって、0x1F4 = 1 × 256 + 15 × 16 + 4 × 1 = 500となります。

よく使う基準値

16進数 10進数 意味
0xFF 255 符号なし8ビットの最大値
0x7F 127 符号付き8ビットの最大値
0xFFFF 65,535 符号なし16ビットの最大値
0xFFFFFFFF 4,294,967,295 符号なし32ビットの最大値
0x7FFFFFFF 2,147,483,647 符号付き32ビットの最大値(INT_MAX)
0xFFFFFFFFFFFFFFFF 18,446,744,073,709,551,615 符号なし64ビットの最大値

符号なしとしての解釈

この変換ツールは、常に入力を符号なし(正)の値として返します。0xFFは255、0x80000000は2,147,483,648です。データが2の補数による符号付きの場合は、対応するビット幅でご自身で規則を適用してください。たとえばバイト0xFFは符号付き8ビットの場面では-1、0x80000000は符号付き32ビットの場面では-2,147,483,648になります。

任意精度

この変換ツールは任意精度の演算で計算を行うため、どんな長さの値を貼り付けても精度を失いません。暗号定数や長いトークンカウンターを読み解く際に特に重要です。

よくある質問

この変換ツールは常に符号なし(正)の解釈で結果を返すためです。バイト0xFFが-1になるのは、2の補数の符号付き8ビットとして読んだ場合だけです。符号なしの値としては255です。符号付きのデータを扱う場合は、結果をデータのビット幅に合わせて解釈してください。

この変換ツールは任意精度の演算で計算を行うため、20桁以上の10進数でも正確に得られます。

はい。スペース、アンダースコア、ハイフンは取り除かれます。DE AD BE EFDEADBEEFは同じ10進数に変換されます。

はい。16進数では大文字・小文字は区別されません。0xAB0xabもどちらも171に変換されます。

関連ツール

このツールは他の言語でも利用できます