温馨提示×

python hexdump如何使用呢

小樊
86
2024-12-06 14:27:08
栏目: 编程语言
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

hexdump 是一个在 Python 中用于将二进制数据转换为十六进制表示的实用程序

import binascii

def hexdump(data):
    # 将二进制数据转换为十六进制字符串
    hex_data = binascii.hexlify(data)
    
    # 计算每两个字符表示的字节数
    byte_count = len(hex_data) // 2
    
    # 输出格式化的十六进制数据
    for i in range(0, byte_count, 16):
        # 获取当前块的数据
        block = hex_data[i:i + 16]
        
        # 计算当前块的字符数
        char_count = len(block)
        
        # 如果字符数不是16的倍数,则填充空格
        if char_count < 16:
            block += b' ' * (16 - char_count)
        
        # 将每两个字符转换为一个字节,并输出为十六进制
        bytes_output = ' '.join([f'{b:02x}' for b in block])
        
        # 输出当前块的行号、地址、十六进制数据和ASCII字符(如果有)
        print(f'{i:04x}: {bytes_output}  {block.decode("ascii", errors="ignore")}')

# 示例数据
data = b'Hello, World!'

# 调用 hexdump 函数
hexdump(data)

这个示例将输出以下结果:

0000: 48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21 0a     Hello, World!

这个函数首先使用 binascii.hexlify() 将二进制数据转换为十六进制字符串。然后,它将字符串分成每两个字符表示一个字节的部分,并输出格式化的十六进制数据。如果字符数不是16的倍数,则填充空格。最后,它将每两个字符转换为一个字节,并输出为十六进制。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:python hexdump有何用处

0