python - 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'
请帮忙.....
解决方案
Pythonbytes
以这样一种方式表示,如果一个值是可打印的 ASCII,它将使用它而不是转义序列。你可以试试:
>>> b'\x0a'
b'\n'
>>> b'\x32'
b'2'
它检查了:\n
是 Python 的换行符转义序列(ASCII 字符 10),2
是 ASCII 字符 50。
推荐阅读
- java - 无法实现检测输入是否为整数的系统
- mongodb - 无法使用 mongocompass 连接到谷歌云实例 mongo
- discord - 命令处理程序未正确显示
- spring - 将应用程序注释为 Eureka 服务器时,需要指定它不是客户端
- python - 广播多个二维数组作为另一个二维数组的单个元素
- swift - 快速如何以编程方式设置自动布局
- javascript - 在javascript / jQuery中使用数据库中的下拉值附加/复制表行
- batch-file - 使用批处理文件根据其内容重命名多个 JSON
- javascript - 使用jquery,从更大的兄弟组中提取每组相邻的兄弟,匹配选择器
- git - 如何使用单个脚本更新我所有的本地 git 分支?