我有contanis一個字段名省位一個數據庫表,並增加了像圖案的計數:asp.net中複選框的數字模式?
AB-1
BC-2
CD-4
DE-8
EF-16.... and so on.
現在的表項我有一個價值13(省位),這意味着對AB,CD,DE的複選框(加起來13)應該被檢查。
我無法獲得相同的邏輯,如何只能檢查總和加到表中條目的複選框?
我有contanis一個字段名省位一個數據庫表,並增加了像圖案的計數:asp.net中複選框的數字模式?
AB-1
BC-2
CD-4
DE-8
EF-16.... and so on.
現在的表項我有一個價值13(省位),這意味着對AB,CD,DE的複選框(加起來13)應該被檢查。
我無法獲得相同的邏輯,如何只能檢查總和加到表中條目的複選框?
的電場是利用位標誌。
13是1101二進制。
因此,將值轉換爲位併爲每個複選框分配一個位。
您需要檢查值是否按位總計。
if(interestedInValue & totalValue == interestedInValue)
{
// this value is in the total, check the box
}
文檔上& http://msdn.microsoft.com/en-us/library/sbf85k1c(v=vs.71).aspx
例如13 = 1 + 4 + 8
1 == 1 //真
2 == 2 //假
4 == 4 //真
8 == 8 //真正
16 == 16 //假
編輯:更多的澄清
ab.Checked = 1 && ProvinceBit == 1 // checkbox AB
bc.Checked = 2 && ProvinceBit == 2 // checkbox BC
...
我無法獲得該鏈接中的任何內容,請向我提供一些更詳細的信息。 –
該鏈接僅用於在您查找有關&命令的更多信息的情況。針對您的特定問題的解決方案是使用該運算符。我做了一個編輯,希望能夠讓你更清楚你需要做什麼。 – JDwyer
給我一個省13位的想法,休息我會做,因爲我有一個很長的模式,直到4096和更多.... –
通過將您的數字轉換爲字符串,您可以轉換爲數組或只是遍歷字符串。有點蠻力,但會給你你需要的。
var value = 13
string binary = Convert.ToString(value, 2);
//binary = "1101"
請提供我的提示如何將它們轉換爲位,這是我沒有得到。 –
我不願意給你代碼。當你把自己挖掘出來時,你會學得更多。 –
我應用了邏輯,它適用於較小的複選框。 –