【问题标题】:python Long to Byte Array of 2 byte using structpython Long to Byte Array of 2 byte 使用结构
【发布时间】:2016-11-08 08:28:36
【问题描述】:

我正在使用 struct 在 python 中将 long 或 int 转换为 bytearray

ba = struct.pack('H',12)

输出:'\x0c\x00' 长度 2 个字节

但如果我转换 ba = struct.pack('H',12345)

输出:'90' 我需要编码为十六进制以获得所需的输出 ba.encode('十六进制') 在这种情况下,输出是 输出:3930 长度为 4

为什么会这样,它应该给出没有编码的 2 字节结果?

我的用例是我需要将 long 转换为所需字节数组大小的字节数组。

【问题讨论】:

  • 我真的不明白你的成就是什么。你想通过输入12获取b"0c00"吗?
  • 实际上我想创建一个通用函数,输入和输出一样长,输出为 2 字节字节数组,如果我的输入为 12 ,则使用 struct ,输出为 '\x0c\x00' ,长度为 2 字节预期的,但是当我将输入作为 12345 给出时,即

标签: python python-2.7 bytearray


【解决方案1】:

'90' 是两个字节。第一个字节是 0x39,第二个是 0x30。

>>> hex(12345)
'0x3039'

TL;DR:你得到了正确的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2012-10-15
    • 2019-04-04
    相关资源
    最近更新 更多