要从二进制字符串中提取信息,关键看你的目标是什么。下面按常见场景给你说明,并附上示例代码(以 Python 为主)。
通常指两种形式之一:
s = "10110101"
b = b'\xa5\xb3'
s = "10110101"
bit = s[2] # 第3位(从0开始)
b = b'\xa5' # 10100101
byte = b[0]
bit = (byte >> 2) & 1 # 取第3位
例如:从第 2 位开始,取 3 位
byte = 0b10110101
mask = 0b111 << 2
bits = (byte & mask) >> 2
s = "10110101"
value = int(s, 2)
例如:一个 2 字节数据,高 4 位和低 12 位含义不同
data = b'\x12\x34'
value = int.from_bytes(data, byteorder='big')
high = (value >> 12) & 0xF
low = value & 0xFFF
s = "101101011110"
n = 4
parts = [s[i:i+n] for i in range(0, len(s), n)]
# ['1011', '0101', '1110']
with open("data.bin", "rb") as f:
data = f.read()
first_byte = data[0]
struct 提取结构化数据(非常常用)import struct
data = b'\x01\x02\x03\x04'
a, b = struct.unpack('<HH', data) # 小端,两个 unsigned short
你可以直接告诉我:
我可以给你精确代码。