如何在python中将单个字符转换为十六进制ascii值

时间:2011-11-11 00:42:25

标签: python hex ascii

我有兴趣接受一个角色,

c = 'c' # for example
hex_val_string = char_to_hex_string(c)
print hex_val_string

输出:

63

最简单的方法是什么?任何预定义的字符串库东西?

5 个答案:

答案 0 :(得分:69)

有几种方法可以做到这一点:

>>> hex(ord("c"))
'0x63'
>>> format(ord("c"), "x")
'63'
>>> "c".encode("hex")
'63'

要在Python 3中使用hex编码,请使用

>>> codecs.encode(b"c", "hex")
b'63'

答案 1 :(得分:2)

这可能会有所帮助

import binascii

x = b'test'
x = binascii.hexlify(x)
y = str(x,'ascii')

print(x) # Outputs b'74657374' (hex encoding of "test")
print(y) # Outputs 74657374

x_unhexed = binascii.unhexlify(x)
print(x_unhexed) # Outputs b'test'

x_ascii = str(x_unhexed,'ascii')
print(x_ascii) # Outputs test

此代码包含将ASCII字符转换为十六进制和从十六进制转换的示例。在您的情况下,您要使用的行是str(binascii.hexlify(c),'ascii')

答案 2 :(得分:0)

使用 ord("a") 获取 ascii 代码; 将 ascii 转换为字符使用 chr(97)

答案 3 :(得分:0)

你可以这样做:

your_letter = input()
def ascii2hex(source):
    return hex(ord(source))
print(ascii2hex(your_number))

有关更多信息,请访问: https://www.programiz.com/python-programming/methods/built-in/hex

答案 4 :(得分:0)

考虑到您的输入字符串在 inputString 变量中,您可以简单地在此变量之上应用 .encode('utf-8').hex() 函数来实现结果。

inputString = "Hello"
outputString = inputString.encode('utf-8').hex()

由此产生的结果将是 48656c6c6f