为什么十六进制字节数据 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'
完全相同,因此无需更改。只需按原样使用该值,因为它可以正常工作。
希望对您有所帮助!
我正在处理一组十六进制数据。我正在为数据使用字节类型。
例如
我的数据为 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'
完全相同,因此无需更改。只需按原样使用该值,因为它可以正常工作。
希望对您有所帮助!