从HEX字符串转换为int而不删除Python上的前导零

问题描述 投票:1回答:1

我需要帮助将HEX字符串转换为int。我有一个大数据输入,但是,这是数据中的一个例子:

def convert_hex_to_int(n:int, interval:int):
        splitted = [hex(n)[2:][i:i + interval] for i in range(0, len(hex(n)[2:]), interval)]
        return [float(int(hex(unpack('<H', pack('>H', int(i, 16)))[0]), 16)) for i in splitted]

    a='0x0E070907'
hex_int = int(a, 16)
result_print = (convert_hex_to_int(hex_int, 4))

而不是

[1806.0, 1801.0]

结果是

[28896.0, 1801.0]

函数convert_hex_to_int是将字符串拆分为2个字节并交换它,间隔为4个字节。并且它的代码的目的是获取HEX String的浮点。我怀疑它必须在Python上删除070E前面的第一个零,而是变为70E0。

  • 我在Stackoverflow中已经阅读了一些类似的问题,但仍然无法正常工作。我是python的新手。谢谢你的帮助。
python python-3.x hex leading-zero
1个回答
1
投票

您可以使用内置的qazxsw poi的qazxsw poi类方法将十六进制转换为字节,然后根据需要将它们解压缩:

fromhex

如果您事先不知道字节数,则可以生成与您的数据匹配的格式字符串。

bytes

只有当要解压缩的字节数可以被目标数据类型中的字节数整除时,这才有效。如果不是这种情况 - 例如,如果您正在从套接字读取流 - 那么您必须累积数据,直到您有合适的数量。

© www.soinside.com 2019 - 2024. All rights reserved.