位掩码的最后5位

时间:2012-05-29 22:14:12

标签: c#

我有一个位掩码(存储为短)。出于各种目的,我想将除最后5位之外的所有内容归零 - 我确信通过按位运算符可以很容易地实现这一点,但它让我望而却步。

1010 01101 1011 0111 -> 0000 0000 0001 0111

由于

3 个答案:

答案 0 :(得分:7)

使用类似:

x & 0x1f

在二进制文件中,您的示例是:

    1010 1101 1011 0111
  & 0000 0000 0001 1111
  ---------------------
    0000 0000 0001 0111

使用&运算符时,掩码中的0位会导致结果中的0位。掩码中的1位将相应的位复制到结果中。

答案 1 :(得分:0)

Value = OriginalValue& 0x1F

答案 2 :(得分:-1)

这样的事情:

your_variable_name & ((1 << 5) - 1)

(1 <&lt;&lt; 5) - 1会给你一个11111,然后你和你的价值。