基数変換(2 進数〜36 進数)
2 進数から 36 進数まで任意の基数間で数値を変換します。任意精度の整数、負数、小数に対応。無料で、ブラウザー内だけで動作します。
桁数の制限はありません(任意精度)。負の数は先頭に -、小数は . を使います。スペース、_、0x / 0o / 0b の接頭辞は無視されます。
11111111377255FF73基数変換とは?
2〜36 の任意の基数で書かれた数値を、2 進数、8 進数、10 進数、16 進数と、選択した追加の基数に書き換えます。任意精度の整数を使うので、64 ビット以上の値も正確に変換でき、負数や小数部も扱えます。
基数変換の使い方
- 数値 に
255、-10、ff.8、0b1010などの値を入力します。 - 数値の表記に使われている 入力の基数(2〜36)を選びます。
- 2・8・10・16 以外が必要なら 追加の変換先基数 を選びます。
- 読みやすさのために 英字を大文字にする や 桁区切りを表示 を切り替え、結果の行をコピーします。
例
255 (base 10)
Binary 11111111 · Octal 377 · Hexadecimal FF · Base 36: 73
基数変換を使うべき場面
ビットマスク、メモリアドレス、色チャンネル、36 進数の ID を読むといったプログラミング作業に向いています。2 の補数の計算機ではありません。負数は固定幅のビットパターンではなく、マイナス記号付きで表示されます。
基数変換の仕組み
整数部は 1 桁ずつ JavaScript の BigInt に読み込まれます(値 = 値 × 基数 + 桁)。そのため 2^53 の精度制限がありません。小数部は分子 / 基数^k という正確な分数として保持します。整数の出力には BigInt.toString(基数) を使い、小数は変換先の基数を繰り返し掛けて整数部を取り出す方法で最大 32 桁まで生成します。小数が割り切れない場合(例:10 進の 0.1 を 2 進数にする場合)は 32 桁で打ち切り、その旨を表示します。9 を超える桁には a〜z の文字を使います。
一般的な使用例
- 16 進のメモリアドレスを 10 進に変換する
- 権限やフラグの値を 2 進数で表し、どのビットが立っているか確認する
- 36 進数の短縮 ID を 10 進数に戻す
- 0.1 が 2 進数でどう表されるか、なぜ正確でないかを確認する
- 128 ビットの 16 進数を桁落ちなしで 10 進数に変換する
よくある質問
扱える数の大きさに上限はありますか?
固定の上限はありません。BigInt の演算で数百桁まで扱えるため、2^128 のような値も正確に変換できます。
0x や 0b などの接頭辞は使えますか?
はい。選択した入力の基数に対応する接頭辞(16 進は 0x、8 進は 0o、2 進は 0b)は無視されます。桁区切りに使うスペースやアンダースコアも同様です。
小数が途中で切れるのはなぜですか?
別の基数では無限に繰り返す小数が多くあります(10 進の 0.1 は 2 進数では 0.000110011…)。変換は小数 32 桁で止まり、結果が切り捨てられたことを表示します。
負数は 2 の補数で表示されますか?
いいえ。先頭にマイナス記号を付けたまま表示します(−10 → −1010)。2 の補数は固定のビット幅に依存しますが、この汎用ツールはそれを前提にしていません。