進数変換ツール
任意の大きさの整数を、2 進数、8 進数、10 進数、16 進数、そして 2〜36 の任意の基数の間で変換し、2 の補数表現も表示します。
| 幅 | 16 進数 | 2 進数 | 符号付きの値 | 符号なしの値 |
|---|---|---|---|---|
| 8 ビット | ||||
| 16 ビット | ||||
| 32 ビット | ||||
| 64 ビット |
ツールをここにピン留めできます。このブラウザに保存されます。
ツールをピン留めすると、そのステッカーがここに並びます。
任意の大きさの整数を、2 進数、8 進数、10 進数、16 進数、そして 2〜36 の任意の基数の間で変換し、2 の補数表現も表示します。
| 幅 | 16 進数 | 2 進数 | 符号付きの値 | 符号なしの値 |
|---|---|---|---|---|
| 8 ビット | ||||
| 16 ビット | ||||
| 32 ビット | ||||
| 64 ビット |
基数(radix)とは、位取り記数法で使う数字の種類の数です。10 進数は 10 種類、2 進数は 2 種類、8 進数は 8 種類、16 進数は 16 種類で、16 進数では 10 から 15 の値に a から f を借りて使います。36 までの基数では、アルファベットを z まで続けて使います。
ハードウェアは数を 2 進数で保存します。16 進数はそれを短く書く方法で、16 進数 1 桁がちょうど 4 ビット、2 桁で 1 バイトになります。8 進数は今も Unix のファイルパーミッションで使われており、1 桁が 3 ビットに対応します。
このページの欄はすべて同じ整数を表示します。どれかを編集すると、ほかの欄も追従します。
数字は 1111_0000 や 1 000 000 のようにスペースやアンダースコアで区切ることができ、先頭にマイナス記号を付けることもできます。プレフィックス 0b、0o、0x は、その英字自体がその欄の数字でない限り、2 進数、8 進数、16 進数を指定します。たとえば 10 進数の欄に 0xff と入力すると 255 と読み取られますが、16 進数の欄に入力した 0b1 は 16 進数の B1 です。
変換には JavaScript の BigInt(任意精度の整数型)を使うので、丸めは発生しません。大きさの上限は、ブラウザの JavaScript エンジンが BigInt に設けている制限だけで、それを超える数はその欄で通知されます。通常の JavaScript の数値では精度が落ち始める 9,007,199,254,740,991 を超える数も、正確に変換されます。対応しているのは整数だけで、小数には対応していません。
各欄では、負の数をマイナス記号と絶対値で表示します。コンピューターでの保存方法は異なり、2 の補数では、負の値に「2 のビット幅乗」を足した値として保存します。8 ビットならそれは 256 なので、-1 は 255(ff)、-128 は 128(80)として保存されます。
表には、値が収まる場合に 8、16、32、64 ビットでのビットパターンと、そのパターンを符号付き整数、符号なし整数として読み直したときの値を表示します。255 と -1 が 8 ビットで同じパターン ff になるのはこのためです。
2 進数の各桁は、右端の 1 から始まる 2 のべき乗の重みを持ちます。桁が 1 のところの重みを足し合わせます。1011 なら 8 + 2 + 1 で 11 です。
16 進数 1 桁はちょうど 4 ビットを表すので、1 バイトは常に 16 進数 2 桁になります。そのため、メモリダンプ、色、ハッシュ、ビットマスクを 2 進数よりはるかに短く書けるうえ、ビットにも簡単に戻せます。
ツール自体には上限がありません。任意精度の整数を使うので、数千桁の数も正確に変換できます。非常に長い入力は計算に時間がかかります。また、ブラウザの JavaScript エンジンごとに 1 つの整数の最大サイズがあり、それを超える数はその欄で通知されます。
ほぼすべてのコンピューターが符号付き整数の保存に使っている方式です。最上位ビットが負の重みを持つため、8 ビットの値の範囲は -128 から 127 になり、-1 は 8 ビットすべてが 1 の値として保存されます。
専用のウィンドウで開き、オフラインでも使えます。
インストールするには、共有ボタンをタップして「ホーム画面に追加」を選びます。