从整数创建 python 位数组 - 奇怪的结果!

发布于 2024-11-16 13:03:31 字数 718 浏览 6 评论 0原文

我刚刚开始在 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')

I'm just starting to use the bitarray package in python, and trying to make a bitarray from an integer gives me really confusing results:

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

Does anyone have any idea why this would be happening??

Also: what would be a better way of making a bitarray from an int? This works, but string conversion seems like a strange way to do it...

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

Edit: I ended up switching to bitstring, which does have an easy method of getting bitstrings from ints:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南烟 2024-11-23 13:03:31
>>> from bitarray.util import int2ba
>>> int2ba(5)
bitarray('101')

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

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

From the project page under "Functions defined in bitarray.util module:".

如痴如狂 2024-11-23 13:03:31

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

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

bitarray.bitarray(n) creates an uninitialized array of length n.

As far as creating from an integer, bitarray doesn't appear to be particularly geared towards that, so you'll either have to use pack/unpack or loop over the individual bits to set them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文