2012-02-17 10 views
0

ウェブページでは、次のスクリプトスニペットが表示されます。^(キャレット)の意味と機能javascriptの記号

(d.charCodeAt(i)^k.charCodeAt(i)).toString() 

それはfor-loopから一部であった、と私はcharCodeAt(i)が何であるかを知っているが、私は本当に^記号の機能であるかと思った...私はいくつかの検索を行うことが、何かを見つけることができなかった...

^とは何ですか?同じ仕事をするPythonや他のプログラミング言語には、どのような関数や演算子が存在しますか?

答えて

4

オペレータはbitwise XORです。 MDN docsから:

[ビット単位のXOR] のための対応するビットの各ビット位置に1を返すのいずれかではなく、両方のオペランドがものです。

ここで、オペランドはオペレータの左右にあるものです。例えば

、我々は2つのバイトがある場合:

A 11001100 
B 10101010 

をAのビットが設定されているか、またはBのビットがセットされ、しかしされていない場合我々は

Q 01100110 

で終わります両方の場合、結果は1、それ以外の場合は0となります。あなたが与える例で


、それはd.charCodeAt(i)k.charCodeAt(i)からASCII文字コードのバイナリ表現を取り、それらをXORします。これは、Python、C++および他の多くの言語でも同じです。これは、数学関連の文脈における指数演算子と混同してはならない。言語はpow()関数などを提供します。 1つのJavaScriptはMath.pow(base, exponent)です。

3

Javascriptでは、bitwise XOR演算子 - または排他的です。オペランドのどちらか一方が真である場合にのみtrueを返しますが、両方が真または両方ともfalseの場合はfalseを返します。

Pythonでは、the same thingです。

ウィキペディアのXOR page

2

ビット単位のXORです。オペランドの各ビットに「排他的OR」を実行します。

関連する問題