繁体   English   中英

Python位数组操作

[英]Python bitarray manipulation

我想从位数组中删除每个16位整数的最低有效2位。 它们的存储方式如下:

010101**00**10010101101100**00**10101010.....

(星号之间的零将被删除。每16位有两个(忽略第一个)。

我可以使用常规的循环检查索引(每16位之后的第7位和第8位)简单地消除它们。

但是...还有另一种Python方式可以做到这一点吗? 我正在考虑一些切片符号或理解列表。 也许我可以将每个数字除以4,然后用14位对每个数字进行编码(如果可以的话)。

您可以使用掩膜轻松清除位。 如果要清除第8位和第7位,可以这样操作:

a = int('10010101101100',2)
mask = ~((1 << 7) | (1 << 8))
bin(a&mask)

这里获取有关屏蔽的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM