我今天遇到了这段代码:
indexValid &= x >= 0;
&= 是什么意思?有人能解释一下这个陈述中发生了什么吗?
最佳答案
这不是关于 Objective-C,而是关于普通 C。
这里带有 &=
运算符的语句等效于 indexValid = indexValid & (x >= 0)
。&
运算符本身称为按位与运算符,而 AND
是操作数。这意味着,仅当两个操作数都是 1
时才返回 1
,否则如果任何操作数不是 0
,则返回 1
。 AND
ing 和 OR
ing 通常用于在软件中设置标志。
例如,如果 indexValid
是二进制的 0011010
并且您使用 AND
(这是一个 bool 表达式结果,1 或 0)对其进行 (x >= 0)
,则结果是 0000000
并且(假设 x >= 0 的计算结果为 1),因为 0011010 & 0000001
的计算结果为 0000000
.
如果您不了解二进制逻辑,http://en.wikipedia.org/wiki/Boolean_logic 是一个很好的起点。
关于objective-c - &= 在目标 c 中是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24854570/