Python语言中将整形或者浮点型切割成有序的字符串,用于通信打包、简单如下
import struct
# 定义一个浮点数
f = 3.14159
# 将浮点数打包为 4 个字节(按照 IEEE 754 单精度格式)
bytes_data = struct.pack('f', f)
# 输出结果(显示为字节形式)
print(bytes_data)
# 假设这是你的四个字节
bytes_data = b'\xdb\x0f\x1f@'
# 解包回浮点数
f = struct.unpack('f', bytes_data)[0]
print(f) # 输出接近 3.14159 的值
定义一个浮点数
f = 3.14159
将其打包为 4 字节的单精度浮点数(小端序),大端序是 >f
import struct
# 定义一个浮点数
f = 3.14159
# 将浮点数打包为 4 个字节(按照 IEEE 754 单精度格式)
bytes_data = struct.pack('f', f)
# 输出结果(显示为字节形式)
print(bytes_data)
bytes_data = struct.pack('<f', f)
# 打印每个字节的十六进制表示(不带 0x,2位宽,大写)
hex_str = ''.join(f"{byte:02X}" for byte in bytes_data)
print("Hex representation:", hex_str) # D00F4940
把十六进制字符串转回字节
hex_str = D00F4940
解包为浮点数(小端解包)
bytes_back = bytes.fromhex(hex_str)
f_recovered = struct.unpack('<f', bytes_back)[0]
print("Recovered float:", f_recovered)
python3 的输出十六进制,打印每个字节的十六进制表示(不带 0x,2位宽,大写)
hex_with_space = " ".join(f"{byte:02X}" for byte in bytes_data)
print(hex_with_space) # 输出如:1F 85 EB 41
or
hex_str = ''.join(f"{byte:02X}" for byte in bytes_data)
print("Hex representation:", hex_str)

被折叠的 条评论
为什么被折叠?



