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

如何无需自定义函数实现Python struct反向解包获取指定字符串?

实现方法

不需要自定义函数的话,有两种简洁的实现方式:

方法一:利用位运算和字符串生成器

直接对每个字节做位拆分,提取低4位和高4位后转成字符串拼接:

data = b"\x10\x32\x54\x76\x98"
result = ''.join(f'{(byte & 0x0F)}{(byte >> 4)}' for byte in data)
# 输出:'0123456789'

原理:每个字节通过byte & 0x0F提取低4位数值,byte >> 4右移4位得到高4位数值,再将两个数值转为字符串后拼接,最后把所有字节的结果连起来。

方法二:借助binascii模块处理十六进制字符串

先把字节序列转成十六进制字符串,再反转每两位的顺序后拼接:

import binascii

data = b"\x10\x32\x54\x76\x98"
hex_str = binascii.hexlify(data).decode()
result = ''.join(hex_str[i+1] + hex_str[i] for i in range(0, len(hex_str), 2))
# 输出:'0123456789'

原理:binascii.hexlify会把每个字节转成两位十六进制字符(比如\x10转成'10'),之后遍历字符串,每两位一组反转顺序,最终拼接成目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:52:53