位掩码的最后5位

Pre*_*ott 1 c#

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

1010 01101 1011 0111 -> 0000 0000 0001 0111
Run Code Online (Sandbox Code Playgroud)

谢谢

Gre*_*ill 7

使用类似的东西:

x & 0x1f
Run Code Online (Sandbox Code Playgroud)

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

    1010 1101 1011 0111
  & 0000 0000 0001 1111
  ---------------------
    0000 0000 0001 0111
Run Code Online (Sandbox Code Playgroud)

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