如何在C#中检查“1”是否在“9”中?
long l1 = 1L; // 0001
long l9 = 9L; // 1001
if (l1 & l9) // True (Cannot implicit convert 'long' to 'bool)
{
}
“&”可能在JavaScript和vb中它是“和”,但我无法弄清楚我在这里缺少什么。
答案 0 :(得分:5)
// check if result of binary op is != 0
// that means "contains"
if ((l1 & l9) != 0)
{
...
}
您需要检查操作的结果是否不等于0.
修改强>
正如@Damien:正确指出的那样,在这种情况下会纠正以检查0
的不等式,因为如果第63位以某种方式涉及,简单的>0
比较可能会产生误报。