在Objective-C iOS中,^代表什么意思?

6

很抱歉问这么简单的问题,但这些东西在谷歌上很难找到答案。

我有iOS代码连接到切换器,可以在摄氏度和华氏度之间切换,但我不知道 ^ 1 是什么意思。self.celsius是一个布尔值。

谢谢

self.celsius = self.celsius ^ 1;

它指的是按位异或运算符。看一下这个链接:https://dev59.com/z3I-5IYBdhLWcg3wVWpi - lakshmen
提示:当你遇到这样的问题时,不要搜索Objective-C,只需搜索“C”(当然还有其他适当的术语,如“运算符”)。 - Hot Licks
1
为什么要这样做而不是 self.celsius = ! self.celsius,这只会让人感到困惑,对吧? - Robert
这个链接回答了我的问题,谢谢。 - James Douglas
3个回答

8
这是一个C语言运算符,意思是“按位异或”。 维基百科提供了一个很好的解释: XOR 按位异或取两个等长的二进制数,对应位上的值进行逻辑异或操作。如果对应位上的值不同,则该位结果为1;否则结果为0。例如:
    0101 (decimal 5)
XOR 0011 (decimal 3)
  = 0110 (decimal 6)

按位异或可以用于反转寄存器中的选定位(也称为切换或翻转)。通过将任何位与1进行异或运算,可以切换任何位。例如,给定位模式0010(十进制2),第二个和第四个位可以通过与包含第二个和第四个位置上的1的位模式进行按位异或来切换:
    0010 (decimal 2)
XOR 1010 (decimal 10)
  = 1000 (decimal 8)

2

1

这是一个异或操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接