python

python hexdump如何使用呢

小樊
81
2024-12-06 14:27:08
栏目: 编程语言

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的倍数,则填充空格。最后,它将每两个字符转换为一个字节,并输出为十六进制。

0
看了该问题的人还看了