python - 如何屏蔽未知大小的 Python 整数的较低 'x' 位

标签 python python-2.7 bit-manipulation bitmask

当我不知道数字的总长度时,我正在寻找一种方法来在 Python 中屏蔽掉(设置为“0”)整数的最低四位。如果我事先知道整数的长度,我可以将掩码的其余部分设置为 0xff,例如,如果整数总是 32 位长,我可以使用:

number &= 0xfffffff0     

但如果我尝试在那里使用 64 位数字,那么它会屏蔽掉第 32-63 位。我想到的两件事是使掩码非常长(例如 0xffffffffffffffffff0)或将位数作为函数的参数。两者都可能工作得很好,但它们看起来很笨拙。有没有更好/更 Pythonic 的方法来做到这一点?

最佳答案

number &= ~0xf

~ 给出操作数的二进制反转,因此 ~0xf 等同于 0x...fff0 对于任何整数大小。

关于python - 如何屏蔽未知大小的 Python 整数的较低 'x' 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26303171/

相关文章:

python - Pandas 中一列的值作为列,同时保持最后更新

python - 列表到元组的字典

python - 如何将类似 time.gmtime() 的元组转换为 UNIX 时间?

python - 组合两个数据帧时保留索引

python - 始终让 Jupyter 笔记本加载某些选项/包

c - 从 unsigned long 中提取 N 到 N+4 的 4 位

powershell - PowerShell 中的一元 "Not"或位翻转运算符?

python-2.7 - 有什么方法可以使用 pybrain 编写最终权重(在所有时期完成后)?

python-2.7 - 将成员写为 Trait 或 Trait() ex x=Str 或 x=Str() 之间的特征差异

mysql - 如何在 MySQL 语句中使用二进制/位域文字