我很难将十六进制改为int/char(最好是char)。通过网站; http://home2.paulschou.net/tools/xlate/我在hex框中输入C0A80026的十六进制,在DEC/CHAR框中,它正确地输出了我希望它包含的IP。
这些数据是从一个外部数据库中提取的,我不知道它是如何保存的,所以我只需要处理十六进制字符串本身。
我试过使用binascii.unhexlify
函数来查看是否可以解码它,但我担心我可能对hex的理解不够深入,无法理解我正在做的事情。
仅使用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))
简单的方法
如果你喜欢列表理解
您可能还需要chr函数:
如果你想从中得到4个独立的数字,那么把它当作4个独立的数字。你不需要
binascii
。这可以概括一下,但我把它留给你作为练习。
相关问题 更多 >
编程相关推荐