python十六进制表
时间: 2025-01-21 20:18:27 浏览: 18
如何在Python中处理十六进制数据
将整数转换为十六进制字符串
可以使用内置函数 hex()
来将整数值转换为其对应的十六进制表示形式。此函数返回带有 '0x' 前缀的结果。
number = 255
hex_string = hex(number)
print(hex_string) # 输出: 0xff
为了去除前缀并获得纯十六进制字符序列,可以通过切片操作实现:
clean_hex_string = hex(number)[2:]
print(clean_hex_string.upper()) # 转换为大写字母输出 FF
十六进制字符串转回整数
对于给定的十六进制字符串,可利用 int() 函数配合 base 参数将其解析为相应的十进制整数。
hex_str = "ff"
decimal_value = int(hex_str, 16)
print(decimal_value) # 输出: 255
字符串到字节数组再到十六进制展示
当涉及到网络协议分析或逆向工程等领域时,经常需要把原始字符串编码成字节对象再呈现其内部结构。下面的例子展示了如何完成这一过程[^3]。
input_string = "\x48\x65\x6C\x6C\x6F" # Hello 的 ASCII 编码版本
byte_array = bytes(input_string.encode('latin1'))
for byte in byte_array:
print(f"{byte:02X}", end=" ")
# 输出: 48 65 6C 6C 6F (注意这里的字母是大写的)
浮点数的十六进制表达
针对浮点类型的特殊需求,Python 提供了 math 模块下的 frexp 和 ldexp 方法用于分解/组合指数部分;而 struct 模块则允许更底层的操作,比如打包解包 IEEE754 标准格式的数据[^1]。
import struct
float_num = 3.14
packed_bytes = struct.pack('>d', float_num) # 使用大端序打包双精度浮点数
unpacked_float = struct.unpack('>d', packed_bytes)[0]
print(packed_bytes.hex().upper())
print(unpacked_float)
# 打印结果类似于:
# 40091EB851EB851F
# 3.14...
相关推荐
















