为什么十六进制字节数据 b'\x35' 在 Python 中被解释为 b'5'?

Why is hexadecimal bytes data b'\x35' being interpreted as b'5' in Python?

我正在处理一组十六进制数据。我正在为数据使用字节类型。 例如 我的数据为 b'\x35'b'\xA6'b'\x12'b'\x26'

当我打印这些十六进制字符中的每一个时,我得到的输出为 b'5'b'\xa6'b'\x12'b'&' 相应

我得到 b'\xa6'b'\x12' 一样。但是当我打印 b'\x35'b'\x26'.

时,我得到了不同的输出

你能告诉我如何解决这个问题吗?我希望我的输出与输入相同。

当您打印 b'\x35' 时得到 b'5' 的原因是因为 0x35 是数字 5 的十六进制表示(在 ASCII 编码中)。 Python 只是将 b'\x35' 解释为 5。因此,当您得到 b'5' 时,它与 b'\x35' 完全相同。任何 ascii 字符也是如此。例如,如果我输入:

print(b'\x61')

我会得到 a 作为输出,因为 0x61 是字母 a 的 ascii 码。本质上,b'5'b'\x35' 完全相同,因此无需更改。只需按原样使用该值,因为它可以正常工作。

希望对您有所帮助!