为什么我的BitArray会分裂?

时间:2017-04-24 08:09:47

标签: python

我有以下代码:

bittrans = '0b' + str(bitnumber)
strnumber = bitstring.BitArray(bittrans)
print bittrans
print strnumber

哪个输出:

0b1001010100000010111110001111111111
0x9502f8ff, 0b11

如何阻止bittring表单拆分?

1 个答案:

答案 0 :(得分:0)

这只是BitArray使用的字符串表示形式,如果你print出来,可以让你的bitarray更容易查看。它与内部表示无关。

它分裂是因为BitArray.__str__想要将你的bitarray表示为一堆字节,如下所示:

0x95 02 f8 ff ?

您不能明确地将您的位串表示为字节,因为位串中的位数不是8的倍数:

In [60]: len('1001010100000010111110001111111111') % 8
Out[60]: 2

请注意,您在问题中的字符串表示中剩余了多少位。您将需要用6个位来填充数字,以使其可以表示为“单个”十六进制数。

您可以打印出strnumber.bin

In [75]: print strnumber.bin
1001010100000010111110001111111111