在C#中,当你有一个变量和一个&?时,这意味着什么?

时间:2017-06-19 13:35:50

标签: c# operators

在网上发现了一些我正在寻找解决问题的代码,而且我并不完全确定它所说的是什么#(候选& 1)== 0&#34 ;。候选人是一个int。

 if ((candidate & 1) == 0)
            {
                if (candidate == 2)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }

1 个答案:

答案 0 :(得分:2)

它是二进制(按位)AND运算符。在您的情况下,if语句检查最低有效位是否为1,换句话说,candidate是否为偶数:

使用数字35和34的示例:

35 & 1 = 0b100011 & 0b1 == 1 => odd
34 & 1 = 0b100010 & 0b1 == 0 => even

另请参阅:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/and-operator