ビット演算計算機(オンライン)
2 つの整数に AND, OR, XOR, NOT とビットシフトを適用し、結果を 2 進・16 進・10 進・8 進で確認。BigInt を使ってブラウザ内で計算します。
ビット演算計算機は完全にブラウザ内で動作します。入力した整数と、すべての AND, OR, XOR, シフト, NOT の結果はデバイス上で計算され、ArrayKit やいかなるサーバーにも送信されることはありません。
基数変換ツールを開く
ビット演算計算機 について
ビット演算計算機は、2 つの整数に AND, OR, XOR, NOT と 3 種類のシフト演算子を適用し、すべての結果を 2 進・16 進・10 進・8 進で一度に表示します。各オペランドを、自分が考えやすい基数 — 10 進、16 進(0xff)、2 進(0b1010)、8 進(0o17)— で入力すると、オペランドを列ごとに揃えたビット単位のグループ表示が返り、どのビットが反転したかを正確に確認できます。BigInt で計算するため、1 << 40 のような左シフトも、JavaScript の演算子のように 32 ビットでオーバーフローせず、正確な 1099511627776 を返します。組み込み開発者、ドライバやプロトコルの作者、レジスタフラグや権限マスクをデコードするすべての人のために作られています。すべてのオペランドと結果はブラウザ内に留まります。
機能
- AND, OR, XOR, NOT と、左・算術右・論理右シフトを計算
- オペランドを 10 進・16 進・2 進・8 進で入力、または 0x/0b/0o の接頭辞で自動判定
- 各結果を 2 進(ニブル単位でグループ化)・16 進・10 進・8 進で並べて表示
- 両オペランドと結果を揃えた積み重ねビット表示で、反転したビットが一目瞭然
- BigInt 演算により、シフトや大きな値が 32 ビット境界でオーバーフローしません
- 符号なしシフトと 2 の補数出力のために、32 ビット表示と 64 ビット表示を切り替え
- 負の値や NOT の結果を、きれいな 2 の補数の 16 進・2 進で表示
- 結果の任意の基数をワンクリックでコピー
ビット演算計算機 の使い方
- 演算を選びます — AND, OR, XOR, NOT、またはシフト(<<, >>, >>>)
- 値 A、続いて値 B またはシフト量を入力します(NOT は A のみ使用)
- 入力の基数を選ぶか、Auto のままにして 0x, 0b, 0o の接頭辞を読み取らせます
- 結果を 2 進・16 進・10 進・8 進で確認し、必要な基数をコピーします
例
入力
A = 12
B = 10
op = AND
出力
BIN 1000
HEX 0x8
DEC 8
OCT 0o10
12 (1100) AND 10 (1010) は共有ビットのみを残し、8 (1000) になります。
よくあるエラーとトラブルシューティング
- 別のツールでの左シフトが驚くほど小さい数を返した。 — そのツールはおそらく 32 ビット整数を使っており、1 << 40 は 256 に折り返します。この計算機は BigInt を使うので、シフトは完全な値 1099511627776 を保ちます。
- 正の値の NOT が負の 10 進数を表示する。 — これは正しい動作です。ビット NOT は 2 の補数で -(n+1) に等しく、NOT 5 は -6 です。HEX または BIN 行を見ると、選んだ幅での反転ビットパターンがわかります。
- 負の数の論理右シフト(>>>)がおかしく見える。 — >>> は幅に対してゼロ埋めします。-1 はまずすべて 1 になるので、32 ビットでは -1 >>> 28 は 15 です。64 ビット幅に切り替えると 64 ビット内でシフトします。
- オペランドが無効として拒否される。 — 桁を基数に合わせてください:16 進は 0-9 と a-f、2 進は 0 と 1 のみです。Auto モードでは 0x/0b/0o の接頭辞を付けるか、切り替えで基数を明示的に選んでください。
よくある質問
- このビット演算計算機が 32 ビット整数ではなく BigInt を使うのはなぜですか?
- JavaScript のビット演算子はオペランドを 32 ビット符号付き整数に変換するため、1 << 40 は 256 にオーバーフローし、大きな値は上位ビットを失います。BigInt で計算すると、数やシフトがどれだけ大きくてもすべての結果が正確に保たれます。
- この計算機での >> と >>> の違いは何ですか?
- >> は符号ビットを保つ算術右シフトで、-8 >> 1 は -4 です。>>> は論理(符号なし)右シフトで、選んだ 32 ビットまたは 64 ビット幅の上位をゼロで埋めるので、-1 >>> 28 は 15 です。
- NOT 5 が -6 と表示されるのはなぜですか?
- ビット NOT はすべてのビットを反転し、2 の補数では -(n+1) と同じです。だから NOT 5 は 10 進で -6 です。HEX と BIN 行を見ると、選んだ幅にパディングされた反転ビットパターンがわかります。
- 16 進・2 進・10 進のオペランドを混在させられますか?
- はい。入力の基数を明示的に設定するか、Auto のままにして各値に 0x, 0b, 0o を付けてください。ツールは両オペランドを解析し、演算子を適用して、4 つの基数すべてで結果を報告します。
- 負の結果の 16 進や 2 進はどう読みますか?
- 負の結果は選んだ幅の 2 の補数で表示されるので、-6 は 32 ビット 16 進で 0xfffffffa になります。10 進行は常に符号付きで正確です。より広いビットパターンが必要なら 64 ビットに切り替えてください。
- 32 ビットと 64 ビットの幅設定は何を変えますか?
- 幅は、論理右シフトがどこでゼロ埋めするか、そして負の値や NOT の結果の 2 の補数 16 進・8 進・2 進が何ビットを使うかを制御します。10 進値と、正の数の論理 AND/OR/XOR は影響を受けません。
関連ツール
すべての ArrayKit ツール