進数変換

整数を2進数、8進数、10進数、16進数、および36までの任意の基数の間で変換します。

すべてブラウザ内で動作します。アップロード、記録、保存は一切行いません。

スペース、アンダースコア、0x や 0b の接頭辞は無視されます。

変換結果

255

2進数(2)
11111111
8進数(8)
377
10進数(10)
255
16進数(16)
FF

同じ数はどの基数でも書け、どれに出会うかは見る場所によります。メモリダンプなら16進数、パーミッションのマスクなら2進数、ファイルのモードなら8進数、それ以外は10進数です。このツールはそのすべての間で変換します。

仕組み

数字は0から9、続いてAからZで、そのため36までの基数を扱えます。入力の大文字・小文字は区別しないので、ff と FF は同じ数です。

変換は、入力をいったんマシンの整数に変換するのではなく、数字列そのものに対する繰り返しの除算で行います。これは見た目以上に重要です。64ビットのハッシュや128ビットの識別子は、まさに人が進数変換ツールに貼り付けるたぐいの値で、浮動小数点数を経由するものはすべて、約16桁を超えると黙って丸めてしまいます。

整数のみで、負の符号は使えません。別の基数での小数は独自の丸めを伴う別の問題で、ついでに答えると、正確に見えて実はそうでない結果になってしまいます。

例

ケース 入力 結果
16進数の1バイト ff from base 16 255 in decimal, 11111111 in binary
Unixのファイルモード 755 from base 8 493 in decimal, 111101101 in binary
マシンの整数より大きくても正確 ffffffffffffffffffffffff from base 16 79228162514264337593543950335

よくある質問

64ビットを超える数に対応していますか?

はい。計算は数字の文字列に対して行うので、長さに上限はなく、何も丸められません。完全なSHA-256ダイジェストを16進数で入力し、10進数で読み直してみてください。

なぜ負の数は受け付けないのですか?

負の数の書き方は、このツールが知りえない取り決めに依存するからです。マイナス記号、ある幅での2の補数、符号ビットのいずれかです。そのどれかを黙って選べば、残りの2つにとっては自信満々で間違った答えになります。

0x や 0b の接頭辞は使えますか?

はい。スペースやアンダースコアも使えます。これらは数字ではなく表記なので(1010 1100 と 1010_1100 は同じ数です)、読み取る前に取り除きます。

なぜ基数36で終わりなのですか?

そこで数字が尽きるからです。10個の数字と26個の文字です。それを超えるには、まず合意が必要な文字の並びが要ります。Base58やBase64がそれぞれのやり方でしているようにです。

知っておきたいこと

  • 符号なしの整数のみです。別の基数での小数には丸めのルールが必要で、負の数には、マイナス記号か、ある幅での2の補数かといった表記の取り決めが必要ですが、このツールは入力だけからはそれを推測できません。
  • 指定した基数とあわせて、よく使う4つの基数を常に表示します。比べたい値はたいていそのどれかだからです。

開発者向けのすべてのツール