为什么我的位数组会分裂?

2024-09-29 17:18:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

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

输出:

0b1001010100000010111110001111111111
0x9502f8ff, 0b11

如何阻止位字符串形式本身分裂?你知道吗


Tags: 字符串代码形式printbitarraybitstringstrstrnumber
1条回答
网友
1楼 · 发布于 2024-09-29 17:18:21

这只是BitArray使用的字符串表示形式,如果您print使用它,您的位数组将更易于查看。它与内部表示无关。你知道吗

它分裂是因为BitArray.__str__希望将位数组表示为一组字节,如下所示:

0x95 02 f8 ff ?

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

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

请注意,这是您的问题中的字符串表示中剩余的位数。你将不得不用6个以上的位来填充你的数字,使之成为一个“单一”的十六进制数。你知道吗

您可以打印strnumber.bin

In [75]: print strnumber.bin
1001010100000010111110001111111111

相关问题 更多 >

    热门问题