6

このような単純な質問をして申し訳ありませんが、これらのことは Google にとって難しいことです。

摂氏と華氏を切り替えるトグルに接続されているiOSのコードがあり、^ 1の意味がわかりません。self.celsius はブール値です

ありがとう

self.celsius = self.celsius ^ 1;
4

3 に答える 3

8

「ビットごとの排他的論理和」を意味する C 言語の演算子です。

ウィキペディアは良い説明を提供します:

XOR

ビット単位の XOR は、同じ長さの 2 つのビット パターンを取り、対応するビットの各ペアに対して排他的論理和演算を実行します。各位置の結果は、最初のビットのみが 1 の場合、または 2 番目のビットのみが 1 の場合は 1 ですが、両方が 0 の場合、または両方が 1 の場合は 0 になります。ビットが異なり、同じ場合は 0 です。例えば:

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

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

    0010 (decimal 2)
XOR 1010 (decimal 10)
  = 1000 (decimal 8)
于 2013-02-23T13:29:14.910 に答える
2

これはビット単位の XOR 演算子です ( http://www.techotopia.com/index.php/Objective-C_Operators_and_Expressions#Bitwise_XORを参照)。

この場合は0 ^ 11 と1 ^ 10 を切り替えています。

于 2013-02-23T13:29:43.093 に答える
1

これは排他的 OR 演算です。

于 2013-02-23T13:29:23.233 に答える