首页 > 解决方案 > Python:从 INT 转换为 BYTES 问题

问题描述

从 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\32'

请帮忙.....

标签: pythonmicropython

解决方案


Pythonbytes以这样一种方式表示,如果一个值是可打印的 ASCII,它将使用它而不是转义序列。你可以试试:

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

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


推荐阅读