Python解决字符串转16进制数据

# hex()将10进制转16进制
def str2hex(s):
    # s: '0x4B'
    s = s[2:]   # 去掉’0x‘

    odata = 0;
    su = s.upper()
    for c in su:
        tmp = ord(c)    # ACSII码
        if tmp <= ord('9') :
            odata = odata << 4  # 高位的数值乘以2^4
            odata += tmp - ord('0')
        elif ord('A') <= tmp <= ord('F'):
            odata = odata << 4
            odata += tmp - ord('A') + 10
    return odata

data = str2hex('0x4B')
print(data)     # 75 = 4*16 + 11

参考:
https://blog.csdn.net/qq_42875304/article/details/123927029

posted @ 2022-09-09 15:04  麦克斯的园丁  阅读(2873)  评论(0编辑  收藏  举报