2進電卓
任意の大きさの整数に対応した2進電卓。加減乗除、AND、OR、XOR、NOT、ビットシフトを行い、結果を2進・16進・10進・8進で表示します。
8/16/32/64 ビットを選ぶと 2 の補数表現を確認できます(NOT や負の数に便利です)。
結果
- 任意精度の整数(BigInt)で計算します。除算はゼロ方向に切り捨てます。ビット幅を選ぶと、結果はその幅に切り詰められ 2 の補数で表示されます。
2進電卓とは?
任意の長さの2つの2進数に対して算術演算とビット演算を行い、結果を2進数(4ビットずつ区切り)、16進数、10進数、8進数で表示します。8/16/32/64ビットの幅を指定すると、2の補数での結果も表示されます。
2進電卓の使い方
- 2進数で数値 Aを入力します(
0bプレフィックス、スペース、アンダースコアも使えます)。 - 演算を選びます:+、−、×、÷、mod、AND、OR、XOR、NOT、<<、>>。
- 数値 Bを入力し(NOTでは不要)、必要に応じてビット幅を指定します。
例
1010 + 0110
1 0000 (hex 10, decimal 16, octal 20)
2進電卓を使うべき場面
デジタル論理の宿題、ビットマスクやフラグ、低レベルコードの確認に使えます。演算なしで1つの数を基数変換するだけなら、基数変換ツールのほうが簡単です。
2進電卓の仕組み
入力はJavaScriptのBigInt値として解析されるため、32ビットや53ビットの制限はありません。除算は0方向への切り捨てで、modの符号はAと同じです(多くのプログラミング言語と同様)。NOTは ~A = −A − 1 です。ビット幅wを指定すると、結果はBigInt.asUintN(w)で折り返され、符号なしのビットパターンとして表示され、符号付き(2の補数)の10進値も併記されます。シフト量は0〜4096ビットに制限されています。
一般的な使用例
- 2進数の足し算と桁上がりの確認
- AND/OR/XORによるマスクの計算
- 8ビットのNOTを2の補数で確認する
- 値を左右にシフトする
よくある質問
負の数はどのように表示されますか?
ビット幅を指定しない場合はマイナス記号付き(−101)で表示されます。幅を指定すると、2の補数のビットパターンと符号付きの10進値が表示されます。
NOT 101が負の数になるのはなぜですか?
幅が無制限の場合、NOTは先頭の無限個の0を反転するため、−6になります。8ビットを選ぶと 1111 1010(符号なし250、符号付き−6)が表示されます。
サイズの上限はありますか?
実用上はありません。BigIntは数百桁を扱えます。結果を妥当な範囲に保つため、シフト量だけ4096に制限されています。