我有一个字符串text="0000001011001100"
我想将此字符串转换为2字节数组,如(b'\ x00 \ x02')
byte_array=(socket.htons(text)).to_bytes(2,sys.byteorder)
但是这不起作用并且提供了 int 所需的错误 我已将文本转换为 int ,但整个字符串都会更改
我需要帮助
答案 0 :(得分:1)
您可以将文本转换为整数,然后您可以使用import struct
text = "0000001011001100"
number = int(text, 2) # 716
result = struct.pack("h", number)
b'\xcc\x02'
# or with > to change bytes order
result = struct.pack(">h", number)
b'\x02\xcc'
模块
admin/config/development/performance/advagg
答案 1 :(得分:0)
您需要将二进制表示转换为int with base 2
text="0000001011001100"
num =int(text,2) #interprets string in base 2
result = chr(num) #is this what you want?
如果您正在使用python 3.x并希望通过拆分每8个字符将文本转换为任意长度的字符串中的bytes
对象:
bytes(int(text[i:i+8],2) for i in range(0,len(text),8))
但是对于您的示例,它会提供b'\x02\xcc'
,因此您可能需要不同的内容