^运算符对BOOL做了什么?

时间:2012-05-29 05:52:27

标签: objective-c boolean

这句话是什么意思?

isChecked = isChecked ^ 1;

isCheckedBOOL

7 个答案:

答案 0 :(得分:5)

“^”是异或运算,因此0翻转为1,1翻转为零。结果应与isChecked = !isChecked相同。

答案 1 :(得分:2)

它将XOR与1检查,所以我认为是真的^ 1 = 0(假)和假^ 1 = 1(真)

答案 2 :(得分:2)

每个人都在说它与布尔相提并论 - 这是真的 - 但这里的目的是,它是切换布尔。

像这样进行按位切换的优点是速度和在极端细节上调整位的能力。

了解更多Bitwise Operators

答案 3 :(得分:2)

它只会翻转BOOL的最后一位。不是逻辑否定的可靠方法。 如果有人疯狂到将BOOL变量设置为某个数字,例如5.然后执行^ 1只会将值的最后一位翻转为4,仍然会将其计算为{{1 }}

如果您想逻辑否定,请改用YES运算符。

答案 4 :(得分:1)

^exclusive or运算符。

在您的示例中,它用于创建切换 - 仅当先前未设置isChecked时才会设置isChecked

答案 5 :(得分:1)

这是按位XOR运算符,将0更改为1,将1更改为0。查看所有opertors here

答案 6 :(得分:1)

“^”称为异或或异或运算。在这种情况下,它会将布尔值从true更改为false,反之亦然。

要了解有关详情,请查看此link