You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将十六进制值0x1180转换为0x80 0x11格式?

Python中实现十六进制小端格式转换的最优方法

核心思路

你的需求本质是将数值转换为小端字节序(Little-Endian)的十六进制表示——原十六进制0x1180对应两个字节(0x11和0x80),小端模式要求低字节0x80在前,高字节0x11在后。

方法一:使用int.to_bytes()(推荐,Python 3+原生方法)

这是最简洁的原生实现,直接通过指定字节数和字节序完成转换:

num = 4480
# 转换为2字节的小端字节串
little_endian_bytes = num.to_bytes(length=2, byteorder='little')
# 格式化每个字节为0xXX的形式并拼接
result = ' '.join(f'0x{b:02X}' for b in little_endian_bytes)
print(result)  # 输出: 0x80 0x11
  • 解释:to_bytes(length=2, byteorder='little')将整数转为2字节的小端字节串(结果为b'\x80\x11'),再通过格式化遍历每个字节,最终拼接成目标格式。

方法二:使用struct模块(适合复杂数据场景)

如果需要处理多类型数据(如浮点数、多字节整数),struct模块的灵活性更强:

import struct

num = 4480
# 用<H格式(小端+无符号短整数)打包为字节串
packed = struct.pack('<H', num)
# 格式化输出
result = ' '.join(f'0x{b:02X}' for b in packed)
print(result)  # 输出: 0x80 0x11
  • 解释:<代表小端字节序,H代表2字节无符号短整数,struct.pack直接生成符合要求的字节串。

关于“反向拼接函数”

Python没有专门命名为“反向拼接”的函数,但上述两种方法本质就是实现了字节序反转的效果。如果非要手动处理十六进制字符串(不推荐,易出错),可以这么写,但仅适用于固定长度的十六进制值:

hex_str = hex(4480)[2:]  # 得到'1180'
# 按两位分组后反转拼接
reversed_hex = ' '.join(f'0x{hex_str[i:i+2]}' for i in reversed(range(0, len(hex_str), 2)))
print(reversed_hex)  # 输出: 0x80 0x11

这种方法无法自适应不同字节长度的数值,因此优先选择基于数值转换的前两种方法。

内容的提问来源于stack exchange,提问作者wanwan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:35:21