Jam*_*las 6 objective-c ios ios6
很抱歉问这么简单的问题,但这些事情对谷歌来说很难.
我在iOS中有代码连接到在Celsius和Fahrenheit之间切换的切换,我不知道^ 1的意思.self.celsius是布尔值
谢谢
self.celsius = self.celsius ^ 1;
Run Code Online (Sandbox Code Playgroud)
它是一个C语言运算符,意思是"按位异或".
维基百科给出了很好的解释:
XOR
按位XOR采用相等长度的两个位模式,并对每对相应位执行逻辑异或运算.如果只有第一位为1或者只有第二位为1,则每个位置的结果为1,但如果两者都为0或两者都为1则为0.在此我们执行两位的比较,如果两位则为1位是不同的,如果它们是相同的则为0.例如:
0101 (decimal 5)
XOR 0011 (decimal 3)
= 0110 (decimal 6)
Run Code Online (Sandbox Code Playgroud)
按位XOR可用于反转寄存器中的所选位(也称为切换或翻转).可以通过将其与1进行异或来切换任何位.例如,给定位模式0010(十进制2),第二和第四位可以通过按位XOR切换,其中位模式在第二和第四位置包含1:
0010 (decimal 2)
XOR 1010 (decimal 10)
= 1000 (decimal 8)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
233 次 |
| 最近记录: |