PYTHON中变量转换

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值