python - 如何在 python 中将十六进制转换为 ascii 十六进制字符串?

标签 python c++ string hex

您好,我正在学习 pySerial 模块,所以 ascii 的十六进制是它的基础。

到目前为止,我有以下概念。

字节串:"\xde"

字节数组:

>>> bytearray('\xde')
bytearray(b'\xde')
>>> a = bytearray('\xde')
>>> a[0]
222
>>> hex(a[0])
'0xde'

十六进制字符串:'\xde'

十六进制:0xde

正常表示:de

现在我需要的是十六进制字符串到十六进制,反之亦然。

还有 Hex 或 Hex String to Normal 表示。

我希望我能得到最简单的答案。

更新:

我想我得到了一个初步的答案,而不是字符串操作。 但这看起来真的很脏。

>>> hex(int(binascii.hexlify('\xde'),16))
'0xde'

最佳答案

让我重新写一点。

你有一个字节(比如 b,整数值为 222(十进制)或 de(十六进制)或八进制 276 或二进制 10111110。

它的十六进制字符串表示是'0xde'

下面的初始化是一样的:

b = 222
b = 0xde

这里是转换(假设s是一个字符串,s='0xde',即十六进制字符串表示)

s = hex(b)
b = int(s, 16)

根据评论编辑:

如果您真的希望能够接受\xde 以及0xde 作为输入,您可以这样做:

b = int('0' + s[1:] if (s[0] == '\\') else s, 16)

或直接

b = int('0' + s[1:], 16)

如果你确定你永远不会得到奇怪的输入

关于python - 如何在 python 中将十六进制转换为 ascii 十六进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967012/

相关文章:

string - 如何查找空格后的单词?

python - 如何将 Tkinter 窗口置于其他窗口之前?

python - 将 statsmodels 与 pyinstaller 一起使用时出错

c++ - 单链表插入和删除的时间复杂度

c++ - _matherr 在内置到 DLL 中时不会被调用

python - Python 日志记录格式化程序中的部分字符串格式化

python - 如何将字符串转换为字典或列表?

python - 使用字典的翻译器

python - 使用 tf.estimator.WarmStartSettings 加载(或组合)多个预训练检查点

c++ - 对无符号变量的算术运算产生有符号值,这是标准行为吗?