Python:从 INT 转换为 BYTES 问题

Python: convert from INT to BYTES issue

从 INT 转换为 BYTES 时有些奇怪。 我用来转换的函数:(int).to_bytes(byte lenght,'big') 在我的具体情况下,我尝试将 31 转换为字节,它显示:

b = (31).to_bytes(1,'big')
b
b'\x1f'

但是当我转换 10 或大于 31 时。它会显示另一个意想不到的值:

b = (10).to_bytes(1,'big')
b
b'\n'
==> b value here supposed to be: b'\x0a'. i don't know why it return b'\n' please let me know the secret behind.

与值 50 相同。

b = (50).to_bytes(1,'big')
b
b'2'
==> b value supposed to be b'x'

请帮忙......

Python 表示 bytes 如果一个值是可打印的 ASCII,它将使用它而不是转义序列。你可以试试看:

>>> b'\x0a'
b'\n'
>>> b'\x32'
b'2'

它检查出:\n 是 Python 的换行符转义序列(ASCII 字符 10),2 是 ASCII 字符 50。