gpt4 book ai didi

Python 'list' 自动将十六进制值转换为十进制

转载 作者:行者123 更新时间:2023-11-30 23:32:35 26 4
gpt4 key购买 nike

最近开始学习Python,有很多困惑,

我有两个输入bytearrays

x = bytearray(b'\xac\xe0\x1f\x15n\x99\xf1\xce\xba\xba\x8d\x9a\xda-JG')
y = bytearray(b'\x9d\x93\xcd\x0f(\xa8\xd6\xa9\xea\x10\x8d_\xbd7\xc6Y')

当我打印它们时,

print(x)
print(y)

它给出了完全相同的输出。

我现在想要zip这两个变量,xy

由于我们在Python 3中使用list来查看zip的内容,

我使用了以下代码,

print( list(zip(x,y)) )

这是输出,

[(172, 157), (224, 147), (31, 205), (21, 15), (110, 40), (153, 168), (241, 214),
(206, 169), (186, 234), (186, 16), (141, 141), (154, 95), (218, 189), (45, 55),
(74, 198), (71, 89)]

我不明白为什么要转换为十进制值?

最佳答案

它不是“转换为十进制值”。 bytearray 是一个字节列表。字节是数字。数字可以用任何基数表示,而不改变其值。所以数字保持不变;只是他们的代表发生了变化。原因是 bytearray 以十六进制表示其内容,而 tuple 包含单独的 int,它们具有默认的十进制表示形式。这仅适用于打印时;例如,以下内容已经是正确的。

assert x[0] == 172

在数字通过 zip 后,换句话说,它们不再是 bytearray 的一部分,并且 Python 不再有任何方式知道它应该将它们打印出来十六进制。

关于Python 'list' 自动将十六进制值转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19280488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com