What does &= mean in objective c?

I ran into this bit of code today:

indexValid &= x >= 0;

What does the &= mean? Could someone explain what is occurring in this statement?


This is not about Objective-C, but regular C.

Here the statement with the &= operator is equivalent to indexValid = indexValid & (x >= 0) . The & operator itself is called the bitwise and operator, and AND s the operands. Which means, returns 1 only if both operands are 1 , else returns 0 if any of the operands is not 1 . AND ing and OR ing is commonly used in setting flags in software.

For example, if indexValid is 0011010 in binary and you AND it with (x >= 0) (which is a boolean expression result, either 1 or 0), the result is 0000000 and (let's say x >= 0 evaluates to 1) as 0011010 & 0000001 evaluates to 0000000 .

If you don't know about binary logic, http://en.wikipedia.org/wiki/Boolean_logic is a good source to start.


It is the bitwise AND plus assignment operator (or 'and accumulate').

It combines a bitwise AND against the left-hand operand with assignment to said operand.

x&= y;

is

x= x & y; 
链接地址: http://www.djcxy.com/p/72652.html

上一篇: 这句话中&符号(&)的含义是什么?

下一篇: 目标c中的&意味着什么?