我正在解决一个需要操作二进制数据的问题。对我来说,执行此操作的最简单方法是通过数组,因为不允许使用二进制字符串表示形式。我可以派生此代码或使用 bin() 执行相同的操作,但数字将始终转换为字符串。我需要使用 int 或 bool 类型的数组。这怎么办?
ascii = list("ABCD".encode('ascii'))
arr = list(map(lambda x: [*format(x, '08b')], ascii))
我尝试使用 bin() 和 format() 在 python 中获取二进制字符串,但得到了字符串结果。
您可以使用
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))
[假真假假假假假假假真假真假 假假假真假假假真假假假假假 真真假真假假假真假假]