ff
b211111111
b8377
b10255
b16ff
b327v
b3673
機能の説明
2 進(2)、8 進(8)、10 進(10)、16 進(16) の間で数値を変換します。BigInt で駆動するため、どんなサイズの値も正確に変換できます - 300 桁の 10 進数も、64 ビットの 0xffffffffffffffff も、浮動小数点の精度で失われることがありません(素の Number コンバーターが 2^53 を超えて辿る運命です)。
パーサーは役に立つ場面では寛容です:元の基数と一致する 0x/0b/0o プレフィックスを受け付け、文字は大文字小文字のどちらでも動作し、先頭の +/- 符号を尊重し、前後の空白をトリムします。元の基数に対して不正な数字(10 進の f など)は、間違った答えではなく明確なエラーで拒否されます。100% クライアントサイドです。
使い方
- 左のセグメントコントロールで変換元の基数を選びます(BIN / OCT / DEC / HEX)。
- 右のセグメントコントロールで変換先の基数を選びます。
- 間にある swap ボタンをクリックすると、ワンタップで変換方向を反転できます。
- Input に数値を入力または貼り付けします - 結果は即座に Output に表示されます。
- 出力の Copy をクリックして、変換済みの値を取得します。
- コンバーターの下にある All bases パネルを読みます:解析された値が基数 2、8、10、16、32、36 で同時にライブ表示され、各行に独自のコピーボタンが付きます。入力を変換元の基数で読み取り、入力が解析できないときは非表示になります。
- ツールが不正な入力を指摘したら修正します:元の基数に対して不正な数字は、出力の代わりに “Invalid digit for base N” と表示されます。
URL パラメータで事前読み込みした状態で開くこともできます:?v=<value>&from=<base>&to=<base>(例:/tools/number-base?v=255&from=10&to=16)。
例
src/lib/numberBase.ts の convertBase()(ツールが使うのとまったく同じ関数)を実行して検証しています:
255 in DEC → HEX: ff
255 in DEC → BIN: 11111111
255 in DEC → OCT: 377
ff in HEX → DEC: 255 (0xff also works)
0b1010 in BIN → DEC: 10
-ff in HEX → BIN: -11111111 (sign carries through)
ff in DEC → — error: "Invalid digit for base 10"
任意精度 - Number ベースのコンバーターが黙って失敗する場面:
18446744073709551615 DEC → HEX: ffffffffffffffff (2^64 − 1, exact)
deadbeefcafebabe HEX → DEC: 16045690984503098046 (64-bit pattern, exact)
2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376
DEC → HEX: 1000000000000000000000000000000000000000000000000000000000000000000000000000
(a 79-digit decimal → 76 hex digits, digit-for-digit exact)
補足事項
- プライベート: 変換はすべてブラウザー内で実行されます。
- UI で選べる基数は 2、8、10、16 です。内部のパーサーは 2〜36 のすべての基数を処理できますが、公開されているのはこの 4 つだけです。
0x/0b/0oプレフィックスは、元の基数と一致するときだけ剥がされます。BIN のもとでの0b1010は10です。同じテキストでも HEX のもとでは 16 進数字の0b1010(= 725008)として解析され、DEC のもとでの0x1fは不正な数字として拒否されます(xは 10 進の数字ではないため)。- 負の数は符号付きで変換されます。2 の補数モードはありません。
- 関連ツール: Bitwise Calculator、Hex ↔ Text Converter、Base32 / Base58 / Base62 / Base85 エンコーダー