繁体   English   中英

从整数制作 python 位数组 - 奇怪的结果!

[英]making a python bitarray from an integer - strange results!

我刚刚开始在 python 中使用 bitarray 包,并试图从一个整数制作一个 bitarray 给我带来了非常令人困惑的结果:

>>> import bitarray
>>> bitarray.bitarray(5)
bitarray('01000')
>>> bitarray.bitarray(5)
bitarray('00010')
>>> bitarray.bitarray(5)
bitarray('00100')
>>> bitarray.bitarray(5)
bitarray('00110')

有谁知道为什么会发生这种情况?

另外:从 int 制作位数组的更好方法是什么? 这有效,但字符串转换似乎是一种奇怪的方法......

>>> bitarray.bitarray(bin(5)[2:])
bitarray('101')

编辑:我最终切换到bitstring ,它确实有一种从整数获取位串的简单方法:

>>> bitstring.BitArray(uint=5,length=6)
BitArray('0b000101')

bitarray.bitarray(n)创建一个长度为n未初始化数组。

就从整数创建而言, bitarray似乎并不特别适合bitarray ,因此您必须使用pack/unpack或循环遍历各个位来设置它们。

>>> from bitarray.util import int2ba
>>> int2ba(5)
bitarray('101')

从“bitarray.util 模块中定义的函数:”下的项目页面

暂无
暂无

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

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