Ampersand在变量之后做了什么?

时间:2013-10-10 15:16:23

标签: c++ binary integer

int a = 2;
a = (a&-a);

那么'&'的目的是什么?在这个街区?

结果是“2”

4 个答案:

答案 0 :(得分:5)

这是按位“和”运算符。用更多的空间可能会更清楚

a = a & -a;

甚至

a = a bitand -a;

答案 1 :(得分:4)

这是按位和运算符。只需看看http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B

即可

a & -a的组合可用于查找已设置的最低有效位。例如:

      12 = 00001100
     -12 = 11110100
     --------------
12 & -12 = 00000100

答案 2 :(得分:3)

&是按位的,但是完整语句的作用是过滤掉数字中的第一个1,例如

a    11010
~a   00101
-a   00110
a&-a 00010

答案 3 :(得分:0)

这是一个按位and,基本上,它需要2个变量,对于每个位,只有当两个数字在该位置都有1时它才为1

所以a

11101010

-a可能代表

这样的两个补语
00010110

所以如果你和他们在一起你得到

11101010
00010110
---------------
00000010