【发布时间】:2022-01-09 02:38:59
【问题描述】:
例如,如果你在一个字节数组中表示 5D,你会得到bytearray(b']'),但我不明白为什么。
是不是因为 ASCII,如果是,Python 是如何处理所有 ASCII 字符的?
【问题讨论】:
-
5D hex 是 93 十进制,这是
]的 ascii 代码。这就是 bytearray 显示易于打印的字符的方式。 -
python2 还是 python3?结果不一样。
-
在每个中尝试
b']' == chr(0x5d)。 -
这是因为 x5d 是 ASCII 中的 ] 字符,Python 在显示字节数组的内容时经常会做一件烦人的事情,如果你想要所有十六进制,请使用类似
','.join(f'\\x{b:02x}' for b in ba)的东西。
标签: python python-3.x byte ascii