【问题标题】:python int to bytearray does not convert properlypython int 到 bytearray 不能正确转换
【发布时间】:2019-11-01 09:43:34
【问题描述】:

我正在尝试将 int 转换为 bytearray,如下所示:

test = bytearray(struct.pack(">I", 60000)[2:])
print(test)

输出是:

bytearray(b'\xea`')

代替:

bytearray(b'\xea\x60')

似乎是什么问题?我该怎么做才能获得“正确”的输出?

【问题讨论】:

  • b'\xea`' 和 b'\xea\x60' 之间没有区别 - 尝试打印 b'\xea\x60' 看看你会得到什么。

标签: python arrays python-3.x type-conversion


【解决方案1】:

对于字符串和字节,如果代码点在可打印 ASCII 范围内,Python 会显示代码点的 ASCII 表示,否则,它会显示为十六进制。

\x60 是 ASCII 中 ` 的代码点,所以你明白了。这只是为了表示的目的,对它们的所有操作都使用下面的代码点。

你可以从你的 REPL 中检查:

In [1]: '\x60'
Out[1]: '`'

In [2]: b'\x60'
Out[2]: b'`'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2014-06-04
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多