在python中将字节数组转换为带符号的short

时间:2019-02-25 18:38:26

标签: python struct byte unpack

我想将 bytearray 类型或python中的二进制字符串列表转换为签名的简短列表。实际上,我从以太网中获取了一个字节流,我想将其转换为 signed short ;但是,我在Python中发现的唯一方法是使用struct.unpack,这似乎很慢,因为它需要使用格式字符串来确定每个字节的类型。

此格式要求分为两个步骤:

1)需要为一长字节数组制作一个长字符串

2)需要在数组中一对一搜索。

在C ++中,以下简单代码在InBuf包含的整个内存块上完成工作:

OutBuf = short int[len]
InBuf = char[len*2]
memcpy(&OutBuf, &InBuf, len*2)

这跳过了在字节数组中进行格式搜索以及格式字符串构造的过程。有谁知道在 Python 中更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您使用的是Python> 3.2,则可以使用int.from_bytes

int.from_bytes(b, byteorder='little', signed=True)