将十六进制字符串转换为int

时间:2019-02-22 03:58:48

标签: python sql hex floating-point-conversion varbinarymax

我需要帮助,将一次从SQL获取的varbinary数据一次转换为4位,转换为int。 从上面的代码中,我获得的结果为('0x640761075D075A0 .....')。我的计划是取每4位交换一次(例如:0764 0761 07D5,依此类推),然后将每4位转换为整数。我该怎么办? 非常感谢你!

1 个答案:

答案 0 :(得分:2)

尝试一下:

from struct import pack, unpack

def convert_hex_to_int(n:int, interval:int):
    splitted = [hex(n)[2:][i:i+interval] for i in range(0, len(hex(n)[2:]), interval)]
    return [unpack('<H', pack('>H', int(i, 16)))[0] for i in splitted]

print(convert_hex_to_int(0x640761075D07, 4))

它将返回list中的int[1892, 1889, 1885]