ビット演算ツール
AND・OR・XOR・NOT・シフト・ローテートを2進数、10進数、16進数で計算し、ビット単位の過程を確認できます。
入力
0x・0b接頭辞、空白、負の10進数にも対応。移動ビット数は常に10進数です。
演算結果
Unsigned結果
Unsigned
Signed
16進数
2進数
ビット単位の計算過程
値を入力すると、ビット単位の計算過程を表示します。
使い方
- AND、OR、XOR、NOT、シフトなどの演算を選びます。
- 入力形式とビット幅を選び、値Aと値Bを入力します。
- シフト・ローテートでは値Bを移動ビット数として使用します。
- 演算結果と逐位の計算過程を確認し、必要な形式をコピーします。
ビット演算早見表
| A | B | AND | OR | XOR |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
対応している演算
| 演算 | 用途 | 例 |
|---|---|---|
| AND | マスクしたビットだけを取り出す | F0 AND 0F = 00 |
| OR | 指定ビットを1にする | F0 OR 0F = FF |
| XOR | 異なるビットを検出・反転する | AA XOR FF = 55 |
| NOT | すべてのビットを反転する | NOT F0 = 0F |
| シフト | ビットを左右へ移動する | 01 << 4 = 10 |
| ローテート | 端から出たビットを反対側へ戻す | 81 ROL 1 = 03 |
ポイント: NOT、左シフト、ローテートはビット幅によって結果が変わります。レジスタや整数型を確認するときは、実際の8・16・32・64ビット幅に合わせてください。
ビット演算のFAQ
ビット演算とは何ですか?
整数を2進数のビット列として扱い、各ビットにAND、OR、XOR、NOTやシフトを適用する計算です。フラグ、権限、レジスタ、マスク処理などで使われます。
AND・OR・XORの違いは?
ANDは両方が1のときだけ1、ORはいずれかが1なら1、XORは異なるときだけ1になります。
NOTの結果がビット幅で変わるのはなぜですか?
NOTは指定範囲内のすべてのビットを反転するためです。8ビットのNOT 0は255ですが、16ビットでは65535になります。
算術右シフトと論理右シフトの違いは?
算術右シフトは符号を維持するため左側を符号ビットで埋め、論理右シフトは左側を0で埋めます。負数を扱うと結果が異なります。
SignedとUnsignedは何が違いますか?
同じビット列を符号付き整数として読むか、0以上の符号なし整数として読むかの違いです。たとえば8ビットの11111111はSignedで-1、Unsignedで255です。
左シフトであふれたビットはどうなりますか?
選択したビット幅の外へ出た上位ビットは切り捨てます。結果は常に指定したビット幅の範囲内に収まります。
64ビットを超える演算に対応していますか?
はい。128ビットのプリセットと、2〜256ビットの任意幅に対応しています。JavaScriptのBigIntを使用して整数精度を保ちます。
入力した値は外部へ送信されますか?
計算はブラウザ内のJavaScriptで行われ、演算のために入力値を外部サーバーへ送信しません。