x <<= y (x = x << y)
x >>= y (x = x >> y)
x >>>= y (x = x >>> y)
x &= y (x = x & y)
x ^= y (x = x^y)
x |= y (x = x | y)
これらの異なる事業者は何をしますか?これらのJavaScriptビット演算子は何をしますか?
x <<= y (x = x << y)
x >>= y (x = x >> y)
x >>>= y (x = x >>> y)
x &= y (x = x & y)
x ^= y (x = x^y)
x |= y (x = x | y)
これらの異なる事業者は何をしますか?これらのJavaScriptビット演算子は何をしますか?
<<, >>
Bit shiftそれぞれ、左右。左のオペランドをバイナリシーケンスのビットとして考えると、右オペランドに示されたビット数だけ、を左または右にシフトすると、になります。
&, ^, |
これらはビット単位と、XOR、それぞれ又は、です。 &
と|
は、&&
と||
のカウンターパートと考えることができます。ただし、オペランドをビットベクトルとして扱い、それぞれのビットに対して論理演算を実行します。 ^^
演算子はありませんが、この演算は "xor"または "exclusive or"です。あなたは "a xor b"を "aまたはbだが両方ではない"と考えることができます。
シフト演算子とは別に完全性のために、これらはブール演算子でも動作します(ビット演算子でもビット演算子でなくてもかまいません - (&AFAIKではなく)Visual Basicにありますが、 '&&'と '||'は '&&'と '||'と異なり、両方のオペランドが常に評価されます。/'||'のバージョンでは、式afの値を変更できない場合、第2オペランドは評価されません最初のオペランドが評価されました。 –
これは非常に初心者のためのものを簡単にするための試みです。あなたは二進法(2桁の数字で構成)に精通する必要が
前提条件
。あなたがいない場合は、まずこのリンクを確認してください:https://www.mathsisfun.com/binary-number-system.html。以前のリンクが破損した場合に備えて、この回答は少し役に立ちます。https://stackoverflow.com/a/32155850/1636522
実際、これらの演算子がどのように機能するかを理解するには、演算に含まれるビットシーケンスの後ろにあるビットシーケンスを知る必要があります。その後、次のことを理解できるはずです。
リマインダー
桁とそのバイナリ表記:
0 0 | 5 101
1 1 | 6 110
2 10 | 7 111
3 11 | 8 1000
4 100 | 9 1001
>>>
、>>
と<<
は何をしますか?
これらの演算子は、ビットシーケンスを左または右にシフトします。
decimal | binary decimal | binary
---------|--------- ---------|---------
9 | 1001 2 | 10
>> 2 | >> 2 << 2 | << 2
= 2 | = 10 = 8 | = 1000
&
、|
と^
は何をしますか?
これらの演算子は、2つの数値のビットを結合して新しい数値を作成します。
decimal | binary decimal | binary decimal | binary
---------|-------- ---------|-------- ---------|--------
5 | 101 5 | 101 5 | 101
& 6 | & 110 | 6 | | 110 ^6 |^110
= 4 | = 100 = 7 | = 111 = 3 | = 011
どう&
動作しますか?ビットの各対について
:2つのビットの少なくとも一方が0である場合、結果として得られるビットは、2ビットのいずれもが0でない場合、結果として得られるビットが1
101 bit 3 | bit 2 | bit 1
& 110 -------|-------|-------
= 100 1 | 0 | 1
& | & | &
1 | 1 | 0
= | = | =
1 | 0 | 0
が0であります|
はどのように機能しますか?ビットの各対について
:2つのビットの少なくとも一方が1である場合、結果として得られるビットは、2ビットのいずれも1でない場合、結果として得られるビットは0
101 bit 3 | bit 2 | bit 1
| 110 -------|-------|-------
= 111 1 | 0 | 1
| | | | |
1 | 1 | 0
= | = | =
1 | 1 | 1
ある1です。 ^
はどのように機能しますか?ビットの各対について
:2つのビットが異なる場合、結果として得られるビットが1の2ビットが同じである場合、結果として得られるビットは0
101 bit 3 | bit 2 | bit 1
^ 110 -------|-------|-------
= 011 1 | 0 | 1
^ | ^ | ^
1 | 1 | 0
= | = | =
0 | 1 | 1
また[見てですどのようなビット演算子ですか?](http://stackoverflow.com/q/276706/1048572) – Bergi