獲取適當的值比方說,我一定要在與值表(第一行是描述)從十六進制
說明 - >十進制值 - >位數
選項1 - > 1 - > 1
選項2 - > 2 - > 2
選項3 - > 4 - > 3
選項4 - > 8 - > 4
OptionX -> 137438953472 -> 38
現在我有以下值:0x7000000800000000。我怎樣才能認識到,根據這個數字選擇了哪些選項?
獲取適當的值比方說,我一定要在與值表(第一行是描述)從十六進制
說明 - >十進制值 - >位數
選項1 - > 1 - > 1
選項2 - > 2 - > 2
選項3 - > 4 - > 3
選項4 - > 8 - > 4
OptionX -> 137438953472 -> 38
現在我有以下值:0x7000000800000000。我怎樣才能認識到,根據這個數字選擇了哪些選項?
ulong v = 0x7000000800000000;
for(int i = 1; v != 0; ++i) {
if ((v & 1) != 0) Console.WriteLine(i);
v >>= 1;
}
或使用BitVector
類。
使用按位AND運算符&
,也可能使用位移運算符<<
(左移)和>>
(右移)。
例如,如果(options & (1 << (n - 1))) != 0
爲真,則選擇了選項n
。
我應該使用某種循環嗎? –
雖然邏輯正確,但實際上並沒有編譯;) – ChrisF
@ChrisF:爲什麼C#不能包含通常的隱式轉換? –
也許代碼允許這些敲擊效果? (純猜測)。 – ChrisF