基数変換(2 / 8 / 10 / 16 / 36)
変換・計算処理はすべてブラウザ内で完結します。データは送信されません
入力
出力
ある数を 2・8・10・16・36 進数の間で相互変換し、5 通りの結果を一度に並べます —— 切り替えながら確かめる手間がありません。入力は 0x・0o・0b の接頭辞を自動認識し、アンダースコアと空白は区切りとしてそのまま貼り付けられます。内部では普通の数値ではなく BigInt を使っています。普通の数値は 2 の 53 乗を超えると下の桁が落ち、スノーフレーク ID を変換すると「見た目は正常なのに実は間違っている」結果を、しかもエラーも出さずに返してしまうからです。
機能
- 2・8・10・16・36 進数の結果を一度にすべて表示
- 入力の接頭辞を自動認識:0x は16進、0o は8進、0b は2進
- 任意長の整数を正確に扱う。19 桁のスノーフレーク ID や注文番号も 1 桁も狂いません
- 2進数のビット数と、64 ビット符号付き整数の範囲に収まるかどうかも表示
- アンダースコアや空白の区切りはそのまま貼り付け可能。事前に手で消す必要はありません
- 入力の接頭辞と選択した基数が食い違う場合はエラーにし、黙ってどちらかを採りません
- 小数は明確に拒否します(0.1 は2進数では循環小数になり、正確な答えが存在しません)
使い方
- 数字を入力欄に貼り付けます。0x / 0o / 0b の接頭辞は自動で認識されます
- 必要なら入力の基数を手動で指定し、接頭辞を付けるか、大文字にするかを選びます
- 5 通りの基数の結果が同時に表示されます
- 「コピー」で結果を取り出せます
よくある質問
- 大きな整数を特別扱いするのはなぜですか?
- JavaScript の通常の数値は倍精度浮動小数点数で、2 の 53 乗を超えると隣り合う整数が区別できなくなります。1234567890123456789 は黙って 1234567890123456800 になります。そしてこの桁数はまさにスノーフレーク ID や自動採番の主キーが該当します。そのためこのツールは全体を通して BigInt を使い、浮動小数点演算を一切しません。
- 36進数の結果に接頭辞が付かないのはなぜですか?
- 0x・0o・0b は JavaScript が定めた3つの書き方で、36進数には共通の接頭辞がありません。勝手に作ると結果をコードに貼り戻したとき解析できなくなるので、付けないほうがましです。
- 小数には対応していますか?
- 対応していません。そしてそれは手抜きではありません:10進数の 0.1 は2進数では循環小数になり、有限桁の出力はすべて近似値です。実際の基数変換の需要はほとんどが整数なので、ここでは整数だけを扱い、小数は明確に拒否します。
- 「符号なし64ビットが必要」とはどういう意味ですか?
- その数が 2^63-1 を超え、符号付き64ビット整数の範囲に収まらないという意味です。データベースの BIGINT には符号付きと符号なしがあり、書き込む前に列の型を確認しないとオーバーフローでエラーになったり切り詰められたりします。
関連ツール
タイムスタンプ変換
変換・計算Unix タイムスタンプと日時を相互変換。秒とミリ秒を自動判別し、タイムゾーンを選べます。結果は行ごとにコピーでき、すべてブラウザ内で処理します。
ハッシュ計算
エンコード・暗号MD5・SHA-1・SHA-256・SHA-512 のダイジェストを計算します。日本語や中国語も UTF-8 バイトで計算し openssl や sha256sum と一致。ブラウザ内で処理します。
色変換
変換・計算HEX・RGB・HSL・HSV の相互変換と、文字色と背景色の WCAG コントラスト比の計算。AA・AAA に届いているかも判定します。すべてブラウザ内で処理します。
日付計算
変換・計算2つの日付の差が何日かを計算し、日・週・月の加減算もできます。日付はカレンダーから選ぶか貼り付けで。終了日を空にすると今日と比較。
Cron 解析
変換・計算cron 式をフィールドごとに日本語で説明し、次に実行される時刻を計算します。絶対に実行されない式はその場で理由を示します。すべてブラウザ内で処理します。
単位換算
変換・計算長さ・重さ・温度・体積などの単位を換算します。1つ値を入れると、同じ種類の全単位での結果が一度に見られます。すべてブラウザ内で処理し、送信しません。