- (void)methedName{
if(){
_type ^=0x1;
}
}
这是什么意思?
答案 0 :(得分:10)
你的问题和你的代码做了不同的事情。
0x1
表示“1”被解释为十六进制数字。这恰好与十进制中的1相同。
因此_type =0x1
只需将_type
设置为1。
^
表示XOR(异或)运算符。
^=
表示使用右侧计算左侧的XOR,并将结果分配给左侧。换句话说,ios_type ^= 0x1
与ios_type = ios_type ^ 0x1
相同。
因此ios_type ^= 0x1
切换ios_type
的1位。
答案 1 :(得分:4)
ios_type ^= 0x1
相当于
ios_type = (ios_type ^ 0x1)
它将ios_type
设置为原始值XOR,并使用常数值1.也就是说,它会切换1位。
XOR(异或)真值表:
INPUT OUTPUT
A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0
参考:Exclusive OR
答案 2 :(得分:1)
它翻转ios_type
的最低有效位,所以
10011010 ^ 00000001 ==> 10011011
10100111 ^ 00000001 ==> 10100110