【问题标题】: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

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 2016-12-25
    • 2013-07-17
    • 1970-01-01
    相关资源
    最近更新 更多