0

我不确定这是否是一个简单的问题,我对 Python 还是比较陌生......但无论如何我会马上解决的。截至目前,我有一个程序将每 2 个十六进制数转换为十进制数(这在示例中更有意义。)它们每个都用逗号分隔,并且长度可以不定......我是什么我想知道是否有办法将每个数字转换回十六进制数字,连接这些十六进制数字,然后将该数字转换为十进制......我不想搞乱其余的转换,因为我做了不写第一部分,它的部分是程序的其他操作所必需的......

因此,为每个人直观地展示一下:

这是我现在所拥有的小数点:(65, 222, 102, 102)

这是它来自的十六进制:41de6666(所以 41 base 16 = 65 base 10,de base 16 = 222 base 10 等等)

这是我真正想要的小数:1105094246

谢谢你们对此的任何意见,非常感谢

编辑:为了澄清我没有可用的 41de6666 来轻松地将其转换为十进制,我需要将第一个给定列表转换为最终结果

4

1 回答 1

2

这是一个 Python 3 版本。它使用struct.unpack方法构建一个 big-endian 4 字节整数:

>>> import struct
>>> x=(65,222,102,102)
>>> struct.unpack('>L',bytes(x))[0]
1105094246

Python 2 版本没有bytes,所以使用pack构建将被解包的字节字符串:

>>> import struct
>>> x=(65,222,102,102)
>>> struct.unpack('>L',struct.pack('4B',*x))[0]
1105094246

*x语法将元组扩展为预期的四个参数pack

于 2013-10-17T02:06:03.580 回答