【问题标题】:What does a '&' stand for in a python bytearraypython 字节数组中的“&”代表什么
【发布时间】:2019-02-01 14:35:21
【问题描述】:

与符号& 在python 末尾bytearray 是什么意思?

例如:

x_w = bytearray(b'\x00\x00\x04\x12\xaa\x12\x12&')

当通过

将其转换为整数时
int.from_bytes(x_w, 'little')

Out[1]: 2743275644678045696

它给出了与没有'&'的相同字节数组不同的结果:

x_wo = bytearray(b'\x00\x00\x04\x12\xaa\x12\x12')
int.from_bytes(x_wo, 'little')

Out[2]: 5087071236784128

我检查了documentation,但没有找到答案。谢谢!

【问题讨论】:

  • 只是一个字符。更改为大端,你会得到0x‭412AA121226‬0x26& 的字符代码。

标签: python arrays python-3.x


【解决方案1】:

它只是表示值为26(十进制38)的字节,即ASCII中的'&'字符。

如果你打印你使用的字节文字的实际字节值,你可以清楚地看到这一点:

>>> print(' '.join('%02x' % b for b in b'\x00\x00\x04\x12\xaa\x12\x12&'))
00 00 04 12 aa 12 12 26

bytearray 对象的 repr 更喜欢尽可能使用 ASCII 字符而不是十六进制转义来表示字节。所以它会更喜欢'&'而不是'\x26',即使它们在技术上是等效的:

>>> bytearray([0x00, 0x00, 0x04, 0x12, 0xAA, 0x12, 0x12, 0x26])
bytearray(b'\x00\x00\x04\x12\xaa\x12\x12&')

>>> b'\x26' == b'&'
True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 2011-11-14
    • 2020-04-18
    • 2015-04-13
    相关资源
    最近更新 更多