换句话说,将整数变量 x 的最后 5 位设置为零,并且它必须是可移植的形式。
我试图用 << 运算符来做到这一点,但这只会将位向左移动,而不是将最后 5 位更改为零。
11001011 应该改为 11000000
创建一个掩码,n
如果它与您的 int 进行按位与运算,则该掩码将清除最后一个整数:
x &= ~ ((1 << n) - 1);
Run Code Online (Sandbox Code Playgroud)
该表达式1 << n
将 1 按n
位移动,实际上是 的 2 次方n
。所以对于 5,你得到 32 或0x00000020
. 减去一个,你会得到一个数字,作为n
最低位设置,在你的情况下0x0000001F
。用 否定这些位,~
你会得到0xFFFFFFE0
其他人也贴出的掩码。与您的整数按位 AND 将仅保留掩码和您的数字共有的位,只能从第六位开始下注。
归档时间: |
|
查看次数: |
1521 次 |
最近记录: |