目标c是什么意思?

不好意思问这样一个简单的问题,但这些事情很难谷歌。

我有iOS中的代码连接到切换摄氏和华氏之间的切换,我不知道^ 1是什么意思。 self.celsius是布尔值

谢谢

self.celsius = self.celsius ^ 1; 

这是一个C语言运算符,意思是“按位异或”。

维基百科给出了很好的解释:

XOR

按位XOR采用长度相等的两位模式,并对每对相应位执行逻辑异或运算。 如果只有第一个比特是1或者只有第二个比特是1,那么每个位置的结果是1,但是如果两个都是0或者两个都是1,那么结果是0.在这里我们执行比较两个比特,如果两个比特是1位不同,如果相同则为0。 例如:

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

按位“异或”可用于反转寄存器中的选定位(也称为翻转或翻转)。 例如,给定位模式0010(十进制2),第二和第四位可以通过在第二和第四位置包含1的位模式按位异或来切换:

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

这是按位XOR运算符(请参阅http://www.techotopia.com/index.php/Objective-C_Operators_and_Expressions#Bitwise_XOR )。

它在这种情况下做的是来回切换,因为0 ^ 11 ^ 1是0。

这是一个独家OR操作。