【发布时间】:2018-12-15 15:20:29
【问题描述】:
我知道要从 int 转换为 bytes 你必须这样做,例如:
>>>a = bytes(4)
>>>print(a)
b'\x00\x00\x00\x00'
但是如果我想还原它并将bytes 转换为int 或float,我该怎么办?
我尝试使用:
int.from_bytes( a, byteorder='little')
和
int.from_bytes( a, byteorder='big', signed=True)
但它不起作用。
【问题讨论】:
-
您期望的结果是什么?如果您有明确定义的二进制格式,
unpack可以将其转换为本机类型或结构。但是有四种不同的方式可以解释您的四个字节,因此您需要首先知道数据是如何序列化的(或者只是猜测,如果这是空闲的好奇心)。 -
您的问题不是读回号码,而是存储号码。
bytes(4)创建一个 4 字节数组,全为零。也许你没有注意到数字 4 实际上并不是这个值。以bytes(9)为例。 -
所以,返回的方法就是
len;)
标签: python python-3.x