假设我必须使用值来跟随表(第一行是描述)
说明 - > DECIMAL VALUE - > BIT NUMBER
选项1 - > 1 - > 1
选项2 - > 2 - > 2
选项3 - > 4 - > 3
选项4 - > 8 - > 4
OptionX -> 137438953472 -> 38
现在我有以下值: 0x7000000800000000 。我如何识别,根据该数字选择了哪些选项?
答案 0 :(得分:2)
ulong v = 0x7000000800000000;
for( int i = 1; v != 0; ++i ) {
if ((v & 1) != 0) Console.WriteLine(i);
v >>= 1;
}
或使用BitVector
类。
答案 1 :(得分:2)
使用按位AND运算符&
,也可能使用位移运算符<<
(向左移位)和>>
(向右移位)。
例如,如果n
为真,则选择了(options & (1 << (n - 1))) != 0
选项。