私はそれを知って&&
おり、とはそれぞれとしてと||
の比較に使用されています。AND
OR
しかし、&
と|
演算子はどうですか?彼らは何のために使われますか?
私がテストしているコードは次のとおりです。
var a = 2;
var b = 3;
var c = a & b;//2
var d = a | b;//3
&&の違い、|| および&、| ...。
私はそれを知って&&
おり、とはそれぞれとしてと||
の比較に使用されています。AND
OR
しかし、&
と|
演算子はどうですか?彼らは何のために使われますか?
私がテストしているコードは次のとおりです。
var a = 2;
var b = 3;
var c = a & b;//2
var d = a | b;//3
&&の違い、|| および&、| ...。
これらは、数値のビットを操作するビット演算子です。結果が意味をなすためには、数字のビットを考える必要があります。
a = 2 //0010
b = 3 //0011
a & b; //0010 & 0011 === 0010 === 2
https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators
これらは主に、.mp3ファイルなどのバイナリデータの読み取りと操作に使用されます。
JavaScriptには、Javaと同じビット演算子のセットがあります。
& and
| or
^ xor
~ not
>> signed right shift
>>> unsigned right shift
<< left shift
Javaでは、ビット演算子は整数で機能します。JavaScriptには整数がありません。倍精度浮動小数点数しかありません。したがって、ビット演算子は、数値オペランドを整数に変換し、ビジネスを行ってから、元に戻します。
例えば:
a = 2 //0010
b = 3 //0011
a & b; //0010 & 0011 === 0010 === 2
a | b; //0010 | 0011 === 0011 === 3
ほとんどの言語では、これらの演算子はハードウェアに非常に近く、非常に高速です。JavaScriptでは、ハードウェアから非常に離れており、非常に低速です。JavaScriptがビット操作を行うために使用されることはめったにありません。その結果、JavaScriptプログラムで&
は、タイプミスの&&
ある演算子である可能性が高くなります。ビット演算子の存在により、言語の冗長性の一部が減少し、バグを隠しやすくなります
Javascript: DouglasCrockfordによるGoodParts+Esailijaの回答
それらはそれぞれビット単位のANDとORです。使用法は主に低レベルの操作(ここでそれが必要になる理由はありません。多くのアプリケーションが存在する可能性があります)の操作です。
例えば:
Decimal Number Binary Form
20 10100
30 11110
20 ==> 10100
& 30 ==> 11110
----- ----------
20 10100 (when both bits are 1)
20 ==> 10100
| 30 ==> 11110
----- ----------
30 11110 (when either of the bits is 1)
同様に、他の演算子もあります。
operator meaning example
xor (^) only one bit is 1 1101
^1001
------
0100
リスト全体を提供することはできますが、それは役に立ちません。すでに多くの回答に優れたリソースへのリンクが含まれています。あなたはそれらを見たいかもしれません。私の答えはただいくつかの考えを与えます。
&&と|| は論理演算子ですが、&と| ビット演算子です
ビット単位の演算子-ビット単位の演算子は、オペランドを10進数、16進数、または8進数ではなく、32ビット(0と1)のシーケンスとして扱います。たとえば、10進数の9の2進表現は1001です。ビット演算子はこのような2進表現に対して操作を実行しますが、標準のJavaScript数値を返します。
変数「a」を13(バイナリ1101)、「b」を9(バイナリ1001)と仮定します。
ビットごとのAND演算子(&)(JavaScript) -これはビットごとのAND演算子であり、両方のオペランドの対応するビットが1であるビット位置ごとに1を返します。次のコードは9(1001)を返します。
コード:
result = a & b;
ビットごとのOR演算子(|)(JavaScript) -これはビットごとのOR演算子であり、オペランドの対応するビットの一方または両方が1であるビット位置ごとに1を返します。この例では、13(1101)が返されます。
コード:
result = a | b;
続きを読む