Python:有没有一种方法可以获取二进制数字数组而不先将其转换为字符串?

问题描述 投票:0回答:1

我正在解决一个需要操作二进制数据的问题。对我来说,执行此操作的最简单方法是通过数组,因为不允许使用二进制字符串表示形式。我可以派生此代码或使用 bin() 执行相同的操作,但数字将始终转换为字符串。我需要使用 int 或 bool 类型的数组。这怎么办?

ascii = list("ABCD".encode('ascii'))
arr = list(map(lambda x: [*format(x, '08b')], ascii))

我尝试使用 bin() 和 format() 在 python 中获取二进制字符串,但得到了字符串结果。

python encoding binary
1个回答
0
投票

您可以使用

numpy.array()
并保存这些位:

import numpy as np

ascii = list("ABCD".encode('ascii'))
res = []

for byte in ascii:
    for i in range(8):
        bit = (byte >> (7 - i)) & 1
        res.append(bit)

print(np.array(res, dtype=bool))


打印

[假真假假假假假假假真假真假 假假假真假假假真假假假假假 真真假真假假假真假假]

© www.soinside.com 2019 - 2024. All rights reserved.