2011-10-04 83 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