从十六进制中获取适当的值

本文关键字:获取 十六进制 | 更新日期: 2023-09-27 18:20:56

假设我必须在下表中列出值(第一行是描述)

描述->十进制值->位数

选项1->1->1

选项2->2->2

选项3->4->3

选项4->8->4

OptionX -> 137438953472 -> 38

现在我有以下值:0x7000000800000。我如何识别,根据这个数字选择了哪些选项?

从十六进制中获取适当的值

ulong v = 0x7000000800000000;
for( int i = 1; v != 0; ++i ) {
    if ((v & 1) != 0) Console.WriteLine(i);
    v >>= 1;
}

或者使用CCD_ 1类。

使用位AND运算符&,也可能使用位移位运算符<<(向左移位)和>>(向右移位)。

例如,如果(options & (1 << (n - 1))) != 0为true,则选择了选项n