Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data conversion 在python 3.7中,如何将ascii字符串更改为十六进制,反之亦然?_Data Conversion_Python 3.7 - Fatal编程技术网

Data conversion 在python 3.7中,如何将ascii字符串更改为十六进制,反之亦然?

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

我在这个网站上看到了一些解决方案,但在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(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这两个程序都可以读取输入和输出字符串。