【问题标题】:Python - Convert bytearray to binary data, then select bitsPython - 将字节数组转换为二进制数据,然后选择位
【发布时间】:2021-03-01 16:50:15
【问题描述】:
我想将 Python 3 中的字节数组转换为二进制数据,以便对其进行操作。
例如,假设我们有以下内容:
a = bytearray(b'\x10\x10\x10')
然后:
a) 我想以二进制形式显示a,例如
b = 0b100000001000000010000.
b) 我希望能够从以前的数据中选择一些位(其中最低有效位会以某种方式对应于b[0]),例如b[4:8] = 0b0001 。
我们如何在 Python 中做到这一点?
非常感谢。
【问题讨论】:
标签:
python
arrays
python-3.x
【解决方案1】:
@Axe319
你的帖子只是部分回答了我的问题。
多亏了你,我得到了:
import sys
a = bytearray(b'\x10\x10\x10')
b = bin(int.from_bytes(state, byteorder=sys.byteorder))
print(b)
0b100000001000000010000
然后,选择四个位,我从Python: How do I extract specific bits from a byte?找到:
def access_4bits(data, num):
# access 4 bits from num-th position in data
return bin(int(data, 2) >> num & 0b1111)
c = access_4bits(b, 4)
print(c)
0b1