# 基数変換

2進数・8進数・10進数・16進数と、2〜36の任意の基数を相互に変換します。大きな数、2の補数、ビット表示に対応。

https://codeknife.dev/ja/kisuu-henkan/

## できること

数値を2進数・8進数・10進数・16進数と、2〜36の任意の基数の間で変換します。長い数もすべての桁を保ち、8・16・32・64ビットでの2の補数パターンを表示し、ビットを1つずつ反転できます。

## 使い方

1. 入力欄またはいずれかの行に数値を入力または貼り付けます。
2. **入力の基数**、2〜36の**任意の基数**、**ビット幅**を選びます。
3. 他の行を読み、ビットをクリックして反転し、結果をコピーします。

## 例

`255` は2進数で `1111 1111`、8進数で `377`、16進数で `FF` です。

8ビットの `-1` は2の補数で `1111 1111` になり、`FF` を8ビットの符号付きとして読むと再び `-1` になります。

## 知っておくと便利なこと

- 接頭辞 `0b`・`0o`・`0x` と、桁の間のアンダースコアや空白が使えます。
- 数値は64ビットや 2^53 に制限されません。ビット表示は、値が選んだ幅に収まるときだけ表示されます。
- **入力を2の補数のパターンとして読む**をオンにすると、`FF` を 255 ではなく `-1` として読みます。

## 2進数で負の数はどう表しますか？

コンピュータは負の数を2の補数で保存します。すべてのビットを反転して1を足します。8ビットでは -1 が 1111 1111、-128 が 1000 0000 です。同じパターンも符号なしなら 255 や 128 と読むため、幅と符号が重要です。

## よくある質問

### 2^53 を超える数も扱えるのはなぜですか？

多くの変換ツールは浮動小数点数を使い、9,007,199,254,740,992 を超えると桁が失われます。このツールは任意精度の整数を使うため、長い数もすべての桁を保ちます。

### 0x・0b・0o の接頭辞は何ですか？

ソースコードで基数を示す印です。0x は16進、0b は2進、0o は8進です。入力しても省いても構いません。桁の間のアンダースコアと空白は無視されます。

### このツールは数値をどこかに送信しますか？

いいえ。すべてブラウザ内で処理され、入力した内容が当サーバーに送られることはありません。