Python - Converting Hex to INT/CHAR

拥有回忆 提交于 2019-11-29 10:57:24

If you want to get 4 separate numbers from this, then treat it as 4 separate numbers. You don't need binascii.

hex_input  = 'C0A80026'
dec_output = [
    int(hex_input[0:2], 16), int(hex_input[2:4], 16),
    int(hex_input[4:6], 16), int(hex_input[6:8], 16),
]
print dec_output # [192, 168, 0, 38]

This can be generalised, but I'll leave it as an exercise for you.

A simple way

>>> s = 'C0A80026'
>>> map(ord, s.decode('hex'))
[192, 168, 0, 38]
>>> 

if you prefer list comprehensions

>>> [ord(c) for c in s.decode('hex')]
[192, 168, 0, 38]
>>> 

You might also need the chr function:

chr(65) => 'A'
>>> htext='C0A80026'
>>> [int(htext[i:i+2],16) for i in range(0,len(htext),2)]
# [192, 168, 0, 38]
Manuel Leduc

I hope it's what you expect:

hex_val = 0x42424242     # hexadecimal value
int_val = int(hex_val)   # integer value
str_val = str(int_val)   # string representation of integer value

For converting hex-string to human readable string you can escape every HEX character like this:

>>> '\x68\x65\x6c\x6c\x6f'
'hello'

from string you can easily loop to INT list:

>>> hextoint = [ord(c) for c in '\x68\x65\x6c\x6c\x6f']
>>> _
[104, 101, 108, 108, 111]

Your example:

>>> [ord(c) for c in '\xC0\xA8\x00\x26']
[192, 168, 0, 38]
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!