客观c中的& =意味着什么?

时间:2014-07-20 20:23:52

标签: objective-c

我今天遇到了这段代码:

indexValid &= x >= 0;

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

2 个答案:

答案 0 :(得分:8)

这不是关于Objective-C,而是关于Objective C.,

此处&=运算符的语句等同于indexValid = indexValid & (x >= 0)&运算符本身称为按位和运算符,AND是操作数。这意味着,仅当两个操作数均为1时才返回1,否则如果任何操作数不是0则返回1ANDOR通常用于设置软件中的标记。

例如,如果indexValid为二进制0011010AND(x >= 0)(这是一个布尔表达式结果,1或0),结果是0000000并且(让我们说x> = 0评估为1),因为0011010 & 0000001评估为0000000

如果您不了解二进制逻辑,http://en.wikipedia.org/wiki/Boolean_logic是一个很好的起点。

答案 1 :(得分:2)

bitwise ANDassignment operator(或'和累积')。

它将bitwise AND与左侧操作数组合,并赋值给所述操作数。

x&= y;

x= x & y;