✏️値を入力
0x/0b/0o の接頭辞、桁区切りの _ やスペースも受け付けます。
🔄変換結果
💡ビット表示
各ビットをクリックすると 0 / 1 を反転できます。右端が最下位ビット(0番)です。
- 立っているビット
- —
- 最上位ビットの位置
- —
- バイト表現
- —
2進数・8進数・10進数・16進数の相互変換とビット演算
0x/0b/0o の接頭辞、桁区切りの _ やスペースも受け付けます。
各ビットをクリックすると 0 / 1 を反転できます。右端が最下位ビット(0番)です。
進数変換ツールは、2進数・8進数・10進数・16進数・36進数を同時に相互変換するツールです。値を入力すると、すべての表記が一度に表示されます。
16進数はメモリアドレス、カラーコード、文字コード、ハッシュ値などいたるところに出てきます。2進数はビット単位のフラグ管理やネットワークのサブネット計算で必要になります。桁が多くなると暗算では追えないため、変換は道具に任せたほうが確実です。
計算はすべてBigIntで行っているため、64ビットを超える大きな値でも桁落ちしません。ビット表示ではクリックで各ビットを反転でき、符号付き(2の補数)としての解釈やAND・OR・XORなどのビット演算も同じ画面で確認できます。
0x や 0b の接頭辞を付ければ、選択に関係なくその進数として解釈されます。コンピュータが負の数を表すための方式です。最上位ビットを符号として使い、負の数はビットを反転して1を足した値で表します。8ビットなら -1 は 11111111(16進数で FF)になります。「符号付きとして扱う」にチェックを入れると、この解釈で表示されます。
指定した幅に収まらない値は、下位のビットだけが残るためです。たとえば 300 を8ビットで扱うと上位が切り捨てられて 44 になります。この現象がオーバーフローで、実際のプログラムでも同じことが起きます。値が切り捨てられた場合は警告が表示されます。
右シフトのときだけ違います。論理シフト(>>>)は左端に必ず0を詰めますが、算術シフト(>>)は符号ビットを複製して詰めます。負の数を2で割る意図なら算術シフト、ビットパターンとして扱うなら論理シフトです。
8は2の3乗なので、2進数3桁がちょうど8進数1桁に対応するためです。同じ理由で、16は2の4乗なので16進数1桁は2進数4桁に対応します。この対応関係があるため、2進数と16進数の変換は4桁ずつ区切るだけで機械的にできます。
はい。JavaScriptの通常の数値型は安全に扱える整数が約9007兆までですが、このツールはBigIntを使っているため、64ビットを超える値でも桁落ちしません。
16進数の FF は10進数で255、2進数で 11111111。FFFF は65535で、これは16ビットで表せる最大値です。IPv4のサブネットマスク 255.255.255.0 は2進数にすると1が24個並び、CIDR表記の /24 と同じ意味になります。サブネットの計算そのものはIPアドレス確認ツールで行えます。