2進数変換
2進数の1010は10進数で10、10進数の255は2進数で11111111です。
使い方
- 2進数、8進数、10進数、16進数の4つの欄のどれかに数を入力すると、残りの3つがすぐに更新されます。マイナス記号、スペース、アンダースコア、0b・0o・0xの接頭辞も使えます。
- 「4桁ずつ区切る」にチェックを入れると、長い2進数が読みやすくなります。
- テキストを変換するときは「テキスト」欄に入力すると、8ビットずつ区切った2進数が表示されます。逆に2進数欄に貼り付けるとテキストが表示されます。区切りのスペースはあってもなくても構いません。
計算方法
各欄はその基数で1桁ずつ読み取り、BigIntとして保持します。そのため非常に大きな値も丸めずに正確に変換でき、ほかの欄はその1つの値から書き出します。
負の数はマイナス記号をそのまま残し(-1010は-10)、2の補数では表示しません。決まったビット幅の2の補数が必要なら、正の値を出してから自分で反転してください。
テキストはまずUTF-8でエンコードし、各バイトを8ビットで書きます。半角英字は1バイト、アクセント付き文字や多くの記号は2から3バイト、日本語のかなや漢字は3バイト、絵文字は4バイトです。2進数からテキストに戻せるのは、長さが8の倍数で、バイト列が正しいUTF-8になっている場合だけです。
よく使う値
| 10進数 | 2進数 | 8進数 | 16進数 |
|---|---|---|---|
| 10 | 1010 | 12 | A |
| 42 | 101010 | 52 | 2A |
| 100 | 1100100 | 144 | 64 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1024 | 10000000000 | 2000 | 400 |
よくある質問
2進数を10進数に手計算で直すには?
右から順に1、2、4、8、16と位の値を書き、桁が1のところの値を足します。1101なら8 + 4 + 1 = 13です。
1文字が2進数8桁になるのはなぜ?
コンピューターは文字をバイトで保存し、1バイトは8ビットだからです。Aはバイト値65で、01000001になります。日本語のように基本の英字以外の文字はUTF-8で複数バイトを使います。
2進数を貼り付けるとエラーになります
テキストへの変換には、0と1だけであること(スペースとアンダースコアは無視)、全体の長さが8の倍数であること、バイト列が正しいUTF-8であることが必要です。余計な数字やビットの不足があると、どれかが崩れます。
桁数に上限はありますか?
数値の変換はBigIntを使うので決まった上限はありません。ただし極端に長い入力は動作が重くなります。入力した内容はサーバーに送られません。