2011-10-04 87 views
2

我有一个小问题,如下位掩码验证:C#位掩码验证

... 
if (BitExist("52","0x20")) 
{ 
//do something 
} 
... 
... 

Private bool BitExist(String value, String key) 
{ 
    //how can i make it return true? 
} 

我的主要问题是,值&键是一个字符串值。有没有一种简单的方法来做到这一点?我对这个位掩饰物很陌生。真的很感谢,如果有人可以帮助我。

+4

解析字符串到数字和使用与操作。 –

+1

为什么他们在第一个字符串? –

回答

2
private bool BitExists(string value, string key) 
{ 
    int k = Int32.Parse(key, System.Globalization.NumberStyles.AllowHexSpecifier); 
    return (Int32.Parse(value) & k) == k; 
} 

这段代码片段的作用如下。在括号内,按键描述的一位被隔离。

00110100 
&00100000 
--------- 
00100000 

之后,你有你必须确定孤立位是否被选中:

00100000 == 00100000 = true 
+0

除了Int32.parse不理解'0x20' –

+0

松开“0x”并使用'int.Parse(key,System.Globalization.NumberStyles.AllowHexSpecifier);' –

+0

谢谢。我会更新答案。 – PVitt