2013-02-23 19 views
6

このような簡単な質問は申し訳ありませんが、これらのことはGoogleにとっては難しいことです。客観的な意味での意味は何ですか?

私は、摂氏と華氏の間で切り替わるトグルに接続されているiOSのコードを持っていますが、^ 1が何を意味するのかわかりません。 self.celsiusは、それが "ビットごとの排他的論理和" を意味C言語の演算子だブール

おかげ

self.celsius = self.celsius^1; 
+0

です。 はこれを見ている:http://stackoverflow.com/questions/1912023/caret-in-objective-c – lakesh

+0

ヒント:このような問題に立ち往生しているときのObjective-CのためにGoogleにありません、単に「C」のGoogle(もちろん、「演算子」などの他の適切な用語)。 –

+1

なぜあなたは 'self.celsius =! self.celsius'それはちょうど混乱の権利ですか? – Robert

答えて

8

です。

ビット単位XORは等しい長さの2つのビットパターンを取得し、対応するビットの各ペアに 排他的論理和演算を行う

XOR:

Wikipediaは良い説明を与えます。 の結果は、最初のビットが1の場合は1、 の場合は1になりますが、両方が0の場合は0になり、両方が1の場合は0になります。 2ビットの比較2つのビットが異なる場合は 、同じ場合は0となります。例えば:

0101 (decimal 5) XOR 0011 (decimal 3) = 0110 (decimal 6) 

ビット単位XORをレジスタ (また、トグルフリップと呼ばれる)で選択されたビットを反転するために使用することができます。たとえば、ビットパターン0010(10進2)が与えられている場合、第2および第4のビットは、第2および第4の位置に1を含むビットパターン のビットパターンXORによってトグルすることができる。

0010 (decimal 2) 
XOR 1010 (decimal 10) 
    = 1000 (decimal 8) 
+0

説明のためにありがとう –

1

排他的論理和演算です。