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

如何设置Python切片实现十六进制数值按字节反转

十六进制按字节反转实现方案

问题原因

你现有代码的切片逻辑是直接反转所有十六进制字符的顺序:
输入0x123456转为字符串后为"0x123456",切片[-1:1:-1]会去掉前两位0x,直接反转剩余字符得到"654321",最终输出0x654321,和你需要的按字节(每2个十六进制字符对应1字节)反转组顺序的需求不符。

调整方案

核心逻辑改为:先去掉0x前缀,补前导0保证字符串长度为偶数,再按2字符为一组拆分,反转组的顺序后拼接即可。

调整后代码

import string

valueh = 0x123456
# 去掉0x前缀,得到纯十六进制字符串
hex_raw = str(valueh)[2:]
# 长度为奇数时补前导0,保证每2位对应1字节
if len(hex_raw) % 2 != 0:
    hex_raw = '0' + hex_raw
# 按2位一组拆分,反转组顺序后拼接
reversed_group_hex = ''.join([hex_raw[i:i+2] for i in range(0, len(hex_raw), 2)][::-1])

if all(x in string.hexdigits for x in reversed_group_hex):
    d = int(reversed_group_hex, 16)
    print(hex(d))

效果验证

输入0x123456时,纯十六进制字符串为123456,拆分后得到组列表['12', '34', '56'],反转组顺序得到['56', '34', '12'],拼接后为563412,最终输出0x563412,符合需求。


内容的提问来源于stack exchange,提问作者scll.raz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:24:02