我今天遇到了这段代码:

indexValid &= x >= 0;

&= 是什么意思?有人能解释一下这个陈述中发生了什么吗?

最佳答案

这不是关于 Objective-C,而是关于普通 C。

这里带有 &= 运算符的语句等效于 indexValid = indexValid & (x >= 0)& 运算符本身称为按位与运算符,而 AND 是操作数。这意味着,仅当两个操作数都是 1 时才返回 1 ,否则如果任何操作数不是 0 ,则返回 1AND 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/

10-09 12:52