Data conversion 在python 3.7中,如何将ascii字符串更改为十六进制,反之亦然?
我在这个网站上看到了一些解决方案,但在Python3.7中不起作用。 所以,我问了一个新问题 “the”的十六进制字符串是“746865”Data conversion 在python 3.7中,如何将ascii字符串更改为十六进制,反之亦然?,data-conversion,python-3.7,Data Conversion,Python 3.7,我在这个网站上看到了一些解决方案,但在Python3.7中不起作用。 所以,我问了一个新问题 “the”的十六进制字符串是“746865” 我想要一个解决方案,将“the”转换为“746865”,将“746865”转换为“the”鉴于您的字符串仅包含ascii(每个字符的范围为0-0xff),您可以使用以下代码段: In [28]: s = '746865' In [29]: import math In [30]: int(s, base=16).to_bytes(math.ceil(le
我想要一个解决方案,将“the”转换为“746865”,将“746865”转换为“the”鉴于您的字符串仅包含ascii(每个字符的范围为0-0xff),您可以使用以下代码段:
In [28]: s = '746865'
In [29]: import math
In [30]: int(s, base=16).to_bytes(math.ceil(len(s) / 2), byteorder='big').decode('ascii')
Out[30]: 'the'
首先,您需要将字符串转换为以16为基数的整数,然后将其转换为字节(假设每个字节2个字符),然后使用
decode
将字节转换回字符串,因为您的字符串仅包含ascii(每个字符的范围为0-0xff),您可以使用以下代码段:
In [28]: s = '746865'
In [29]: import math
In [30]: int(s, base=16).to_bytes(math.ceil(len(s) / 2), byteorder='big').decode('ascii')
Out[30]: 'the'
首先,您需要将字符串转换为以16为基数的整数,然后将其转换为字节(假设每个字节2个字符),然后使用
解码将字节转换回字符串如果您有字节字符串,则:
>>> import binascii
>>> binascii.hexlify(b'the')
b'746865'
如果您有Unicode字符串,则可以对其进行编码:
>>> s = 'the'
>>> binascii.hexlify(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>> binascii.hexlify(s.encode())
b'746865'
当然,反过来是:
>>> binascii.unhexlify(b'746865')
b'the'
如果有字节字符串,则:
>>> import binascii
>>> binascii.hexlify(b'the')
b'746865'
如果您有Unicode字符串,则可以对其进行编码:
>>> s = 'the'
>>> binascii.hexlify(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>> binascii.hexlify(s.encode())
b'746865'
当然,反过来是:
>>> binascii.unhexlify(b'746865')
b'the'
@KenWhite使用此转换器@KenWhite使用此转换器为什么在hexlify
中使用b
?@alhelal字节字符串在Python3中是这样表示的。为什么b
在hexlify
中使用?@alhelal字节字符串在Python3中是这样表示的。通常最好解释一个解决方案,而不是仅仅发布一些匿名代码行。您可以阅读,而且通常最好解释一个解决方案,而不是仅仅发布几行匿名代码。您可以读取输入和输出字符串,也可以读取ASC_to_txt.py和txt_to_ASC.py这两个程序。ASC_to_txt.py和txt_to_ASC.py这两个程序都可以读取输入和输出字符串。