2011-10-20 16 views
4

可能性の重複:
What does the^operator do?オペレータ "^"の目的は何ですか?

>>> var foo = [1,2] 
>>> var bar = [3,4] 
>>> foo^bar 
0 
>>> foo^3 
3 
>>> 1^3 
2 

オペレータの目的は何ですか:^?

編集1:なぜ

>>> foo^bar 
0 

あなたは説明できますか? 1^3の場合

+0

これはXOR演算子である – AmGates

+0

https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators#.5E_( Bitwise_XOR) –

+0

ビット単位の排他的論理和演算子です。 – Nikoloff

答えて

6

、XOR演算子は、あなたが数学-Yのことをやって起動したときにJavaScriptがNaNとして配列構文[x,y]を見2.

1 = 00000001^
    3 = 00000011 
     ======== 
     00000010 = 2 

取得するには、いくつかのバイナリものを行いますそれ。あなたはそれにビット演算を行う際NaN0として解釈されるため、foobar数学は感覚のアカウントにそれを取って作るために開始します。

foo => NaN = 00000000^
bar => NaN = 00000000 
      ======== 
      00000000 = 0 

foo => NaN = 00000000^
     3 = 00000011 
      ======== 
      00000011 = 3 

当てはまるようです。 [1,2]^7 = 7[1,2,3]^9 = 9など

+3

fooとbarの排他的論理和はどうですか? – hungryMind

+0

11.10節で定義されているToInt32演算でNaNが '0'に変換されるため、' NaN'は 'NaN'、' NaN^3'は '3'です。@hungryMind:' + [1,2] ECMAScript仕様の一部です。 – pimvdb

+0

それは彼が私が思っていた答えです。誰でも簡単にXORの詳細を見つけることができますが、配列と番号の間の演算子が関心事でした。ご回答ありがとうございます – hungryMind

1

そのは、ビット演算子の一つと呼ばれ、それは32ビット(0と1)のシーケンスとしてではなく、10進数、16進数、またはオクタルnumbers.Bitwise XOR(A^Bとしてのオペランドを扱います)どちらかのオペランドではなく対応するビットが1であるビット位置の1を返します。

EDIT:

a b a XOR b 
0 0 0 
0 1 1 
1 0 1 
1 1 0 

また

9 (base 10) = 00000000000000000000000000001001 (base 2) 
14 (base 10) = 00000000000000000000000000001110 (base 2) 
        -------------------------------- 
14^9 (base 10) = 00000000000000000000000000000111 (base 2) = 7 (base 10) 
+0

私はあなたが少なくとも*あなたがこれをコピー/貼り付けた状態であるべきだと思います。 – pimvdb

+0

私は気にしませんが、あなたの文章はかなり読まれません。とにかく、あなたがhttps://developer.mozilla.org/ja/JavaScript/Reference/Operators/Bitwise_Operatorsであなたの本とまったく同じ例文を置いたのは驚きです。 – pimvdb

+0

@pimvdb、最後のコメントで申し訳ありません。私は私の講師が私の本の一つで見た。 –

関連する問題