我今天遇到了这段代码:
indexValid &= x >= 0;
&=是什么意思?有人可以解释这句话发生了什么吗?
这不是关于Objective-C,而是关于常规C。
这里带有&=
运算符的语句等效于indexValid = indexValid & (x >= 0)
。该&
运营商本身就是所谓的按位与操作,以及AND
S中的操作数。这意味着,1
仅当两个操作数都1
为时返回;否则,0
如果任何一个操作数都不为,则返回1
。AND
ing和OR
ing通常用于在软件中设置标志。
例如,如果indexValid
是0011010
在二进制和你AND
将其与(x >= 0)
(这是一个布尔表达式结果,1或0),则结果是0000000
与(比方说X> = 0的计算结果为1)0011010 & 0000001
的计算结果为0000000
。
如果您不了解二进制逻辑,可以从http://en.wikipedia.org/wiki/Boolean_logic开始。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句