gpt4 book ai didi

python-3.x - Python 字节表示

转载 作者:行者123 更新时间:2023-12-04 15:53:54 25 4
gpt4 key购买 nike

我正在 python 上编写一个十六进制查看器来检查原始数据包字节。我使用 dpkt 模块。

我假设一个十六进制字节的值可能介于 0x00 和 0xFF 之间。但是,我注意到 python bytes 表示看起来不同:

b'\x8a\n\x1e+\x1f\x84V\xf2\xca$\xb1'

我不明白这些符号是什么意思。我怎样才能将这些符号转换为可以在十六进制查看器中显示的原始 1 字节值?

最佳答案

\xhh 表示 hh 的十六进制值。即它是编码 0xhh 的 Python 3 方式。

参见 https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals

字符串开头的 b 表示变量应该是 bytes 类型而不是 str。上面的链接也涵盖了这一点。\n 是换行符。

您可以使用 bytearray 来存储和访问数据。这是在您的问题中使用字节字符串的示例。

example_bytes = b'\x8a\n\x1e+\x1f\x84V\xf2\xca$\xb1'
encoded_array = bytearray(example_bytes)
print(encoded_array)
>>> bytearray(b'\x8a\n\x1e+\x1f\x84V\xf2\xca$\xb1')
# Print the value of \x8a which is 138 in decimal.
print(encoded_array[0])
>>> 138
# Encode value as Hex.
print(hex(encoded_array[0]))
>>> 0x8a

希望这对您有所帮助。

关于python-3.x - Python 字节表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688418/

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