【问题标题】:12 bytes array to double python12字节数组到双python
【发布时间】:2015-10-18 16:19:53
【问题描述】:

我正在尝试这样做:

struct.unpack('d', barray[:HALF_BYTES])[0]

barray[:HALF_BYTES] 是一个 12 字节数组

但我收到此错误:

Traceback (most recent call last):
  File "random_input_sample_drawer.py", line 19, in <module>
    print (struct.unpack('d', barray[:HALF_BYTES])[0])
struct.error: unpack requires a bytes object of length 8

我该如何解决?

【问题讨论】:

  • 你的barray是什么类型的?它是一个 bytearray() 还是一个字符串?另外你想达到什么目的,你想把这 12 个字节当作一个整数吗?

标签: python double type-conversion bytearray precision


【解决方案1】:

你可以使用:

int.from_bytes(barray[:HALF_BYTES], byteorder='big', signed=False)

将这 12 个字节转换为整数,如果这就是你想要做的,假设你的 barray 是一个 bytearray() 并且你正在使用 python 3.2 +

【讨论】:

  • 但是我丢失了字节对吗? phyton 中没有 96 位整数,这就是我尝试转换为浮点数而不是整数的原因。
  • Python 可以处理这个问题,并在内部将其转换为 long,我相信。编辑:刚刚测试过,没有精度损失
  • 太好了。我会用这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 2018-03-02
  • 2011-10-04
相关资源
最近更新 更多