。将字符串转换为2Bytearray(U32) - python

时间:2016-01-22 20:16:54

标签: python bytearray

我有一个字符串text="0000001011001100" 我想将此字符串转换为2字节数组,如(b'\ x00 \ x02')

byte_array=(socket.htons(text)).to_bytes(2,sys.byteorder)

但是这不起作用并且提供了 int 所需的错误 我已将文本转换为 int ,但整个字符串都会更改

我需要帮助

2 个答案:

答案 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

请参阅:https://docs.python.org/3/library/struct.html

答案 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',因此您可能需要不同的内容