我有一个位掩码(存储为短)。出于各种目的,我想将除最后5位之外的所有内容归零 - 我确信通过按位运算符可以很容易地实现这一点,但它让我望而却步。
1010 01101 1011 0111 -> 0000 0000 0001 0111
由于
答案 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,然后你和你的价值。