C#中的按位运算。如何将2 long转换为bool结果?

时间:2016-08-22 13:07:01

标签: c# bitwise-operators

如何在C#中检查“1”是否在“9”中?

long l1 = 1L; // 0001
long l9 = 9L; // 1001
if (l1 & l9) // True (Cannot implicit convert 'long' to 'bool)
{
}

“&”可能在JavaScript和vb中它是“和”,但我无法弄清楚我在这里缺少什么。

1 个答案:

答案 0 :(得分:5)

// check if result of binary op is != 0
// that means "contains" 
if ((l1 & l9) != 0)
{
   ...
} 

您需要检查操作的结果是否不等于0.

修改 正如@Damien:正确指出的那样,在这种情况下会纠正以检查0的不等式,因为如果第63位以某种方式涉及,简单的>0比较可能会产生误报。