这个&符号在C中意味着什么?

时间:2014-06-23 16:27:12

标签: c syntax

我正在查看c代码:

 if((VAR_ON&3) > 1)

我不确定VAR_ON是什么类型的变量,我的猜测是它是一个指针,但最后& 3对它做了什么?如果这是一个重复的问题我很抱歉,我找不到关于变量后的&符号的任何问题。

3 个答案:

答案 0 :(得分:4)

如问题代码中所使用的,&符号&'是一个按位'和'操作。

示例(假设VAR_ON =' 21'):

VAR_ON  21(Decimal)    00010101(Binary)
       & 3(Decimal)  & 00000011(Binary)
       ------------  ------------------
         1(Decimal)    00000001(Binary)

因此,如果VAR_ON是' 21,则表达式(VAR_ON& 3)将评估为' 1'。 '如果'条件是假的:

if((VAR_ON&3) > 1)

答案 1 :(得分:1)

&安培;在该上下文中将执行一些明智的AND操作。

因此,VAR_ON将与3进行AND运算,以便在比较中仅使用变量的最后2位。

答案 2 :(得分:1)

这是一个按位AND。这不是“变量之后”的&符号。这是一个按位运算二进制运算符,用于两个操作数:VAR_ON和3。