首页
社区
课程
招聘
python HEX打印字符串
发表于: 2021-12-5 14:46 8095

python HEX打印字符串

2021-12-5 14:46
8095

作为一个多年的c++程序员,看python有点别扭

最直接的就是不方便开内存,比如我们最喜欢的就是下面的形式

31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66 1234567890abcdef
67 68 69 6a 6b 6c 6d 6e 31 32 33 34 35 36 37 38 ghijklmn12345678
39 30 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 90abcdefghijklmn
31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66 1234567890abcdef
67 68 69 6a 6b 6c 6d 6e e4 b8 ad e5 9b bd       ghijklmn......
Press any key to continue . . .

在网上找半天没有发现,自己写了一个,代码写得很垃圾哈,我也不懂python,凑合用

def print_hex(bytes):
    cycle=len(bytes)//16
    
    for i in range(cycle):
        lhex=""
        lascii=""
        for y in range(16):
            lhex += '{:0>2x}'.format(int(bytes[i*16+y])) 
            lhex+=" "
            if chr(bytes[i*16+y]).isascii():
                lascii += chr(bytes[i*16+y])
            else:
                lascii+="."

        print(lhex+lascii)

       
    
    n=len(bytes)%16 
    lhex=""
    lascii=""
    for i in range(n):
        lhex += '{:0>2x}'.format(int(bytes[cycle*16+i])) 
        lhex+=" "
        if chr(bytes[cycle*16+i]).isascii():
                lascii += chr(bytes[cycle*16+i])
        else:
                lascii+="."
    print("%-47s %s" % (lhex, lascii))


    


ta="1234567890abcdefghijklmn1234567890abcdefghijklmn1234567890abcdefghijklmn"
ta+="中国"
test = b"\xab\xcd\xef\x11\x001111111111111111111111111111111111111111111111111111111"
print_hex(test)
print_hex(ta.encode())

我也提交了一个github,有问题提交一下,方便大家好

wannianhong/python_print_hex (github.com)


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 21580
活跃值: (6401)
能力值: (RANK:445 )
在线值:
发帖
回帖
粉丝
2
pip install hexdump
------------------------
import hexdump
hexdump.hexdump('aabbcc')
2021-12-5 19:46
0
雪    币: 10708
活跃值: (7627)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
版主nb
2021-12-5 20:39
0
游客
登录 | 注册 方可回帖
返回
//