2

私はそれを知って&&おり、とはそれぞれとしてと||の比較に使用されています。ANDOR

しかし、&|演算子はどうですか?彼らは何のために使われますか?

私がテストしているコードは次のとおりです。

var a = 2;
var b = 3;
var c = a & b;//2
var d = a | b;//3

&&の違い、|| および&、| ...。

4

5 に答える 5

4

これらは、数値のビットを操作するビット演算子です。結果が意味をなすためには、数字のビットを考える必要があります。

a = 2 //0010
b = 3 //0011
a & b; //0010 & 0011 === 0010 === 2

https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators

これらは主に、.mp3ファイルなどのバイナリデータの読み取りと操作に使用されます。

于 2012-06-20T14:51:24.423 に答える
3

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の回答

于 2012-06-20T14:51:26.640 に答える
3

それらはそれぞれビット単位の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

リスト全体を提供することはできますが、それは役に立ちません。すでに多くの回答に優れたリソースへのリンクが含まれています。あなたはそれらを見たいかもしれません。私の答えはただいくつかの考えを与えます。

于 2012-06-20T15:01:02.170 に答える
2

&&と|| は論理演算子ですが、&と| ビット演算子です

于 2012-06-20T14:52:00.630 に答える
1

&&と|| は論理演算子ですが、&と| ビット演算子です

ビット単位の演算子-ビット単位の演算子は、オペランドを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; 

続きを読む

演算子:&| ^〜<< >> >>>

于 2012-06-20T14:49:16.597 に答える