我尝试将一个十六进制数转换为int/char(最好是char),但遇到了一些困难。通过这个网站:http://home2.paulschou.net/tools/xlate/,我输入了十六进制的C0A80026,它在DEC / CHAR框中正确输出了我预期包含的IP地址。
这些数据来自外部数据库,我不知道它们是如何保存的,所以我只能使用十六进制字符串本身来工作。
我尝试使用binascii.unhexlify
函数进行解码,但我担心我对十六进制的理解可能不够深刻。
使用int()转换仍然无法产生所需的结果。我需要一种将该十六进制字符串(或类似的字符串)转换为原始IP的方法。
更新:对于未来遇到此问题的人们,我稍微修改了下面的答案,提供了一个精确的IP打印输出方式:
dec_output = str(int(hex_input[0:2], 16)) + "." + str(int(hex_input[2:4], 16)) + "." + str(int(hex_input[4:6], 16)) + "." + str(int(hex_input[6:8], 16))