JavaScriptのビット演算子
演算子 | 名前 | 説明 |
---|---|---|
& | ビットAND | 両方のビットが1である場合、各ビットは1に設定され |
私 | ビットごとのOR | 1〜2ビット場合、各ビットは1に設定されています |
^ | ビットごとのXOR | 一方のみの2ビットの1の場合、各ビットは1に設定されています |
〜 | 非 | すべてのビットをリバース |
<< | 左にゼロパディング | ゼロの左側に右側から押し込むことにより、左端の桁収まるよう |
>> | 算術右シフト | 右端のビットオフ左から右への左端のコピーを押して移動させ、そして |
>>> | ゼロ右シフトを埋めます | ゼロ右プッシュ左から移動させることにより、及び右端のビット降ろし |
例:
オペレーティング | 結果 | 同値 | 結果 |
---|---|---|---|
5&1 | 1 | 0101&0001 | 0001 |
5 L1 | 5 | 0101 I 0001 | 0101 |
〜5 | 10 | 〜0101 | 1010 |
5 << 1 | 10 | 0101 << 1 | 1010 |
5 ^ 1 | 4 | ^ 0001 0101 | 0100 |
5 >> 1 | 2 | 0101 >> 1 | 0010 |
5 >>> 1 | 2 | 0101 >>> 1 | 0010 |
ビットAND
2つのビットが1である場合はビットの組とは、ビット単位の操作を行った場合、1が返されます。
動作例:
オペレーティング | 結果 |
---|---|
0&0 | 0 |
0&1 | 0 |
1&0 | 0 |
1&1 | 1 |
ビットごとのOR
少なくとも1つのビットが1である場合、1はそうでなければ、0に戻されたとき、ビット対またはビット操作を行う場合:
動作例:
オペレーティング | 結果 |
---|---|
0I0 | 0 |
0I1 | 1 |
1I0 | 1 |
1I1 | 1 |
ビットごとのXOR
少し異なる(またはむしろ異なる)場合、ビットの対は、ビット単位のXOR演算を実行すると1を返します。
動作例:
オペレーティング | 結果 |
---|---|
0 ^ 0 | 0 |
0 ^ 1 | 1 |
1 ^ 0 | 1 |
1 ^ 1 | 0 |