为什么Python bytearray使用value>;=256
Python声明: bytearray类型是0=256范围内的可变整数序列。我存储一个最大值为:为什么Python bytearray使用value>;=256,python,binary,byte,Python,Binary,Byte,Python声明: bytearray类型是0=256范围内的可变整数序列。我存储一个最大值为:2^9-1=512-1=511的9位二进制数 ba = bytes([0b111111111]) print '%s' % (ba) 9位二进制数打印为十进制511: [511] 我不知道预期的行为是什么,但我假设最重要的位将被删除以给出一个8位的数字。您实际上并不是创建一个字节数组或字节对象,而是创建一个包含'[511]'的字符串。,因为Python 2中的bytes只是str的同义词。在Pyt
2^9-1=512-1=511的9位二进制数
ba = bytes([0b111111111])
print '%s' % (ba)
9位二进制数打印为十进制511:
[511]
我不知道预期的行为是什么,但我假设最重要的位将被删除以给出一个8位的数字。您实际上并不是创建一个字节数组或字节对象,而是创建一个包含'[511]'的字符串。
,因为Python 2中的bytes
只是str
的同义词。在Python 3中,您将得到一条错误消息:
ValueError: byte must be in range(0, 256)
以下代码在Python2或Python3中工作;注意,我传递的是一个8位的数字,所以它在范围内
ba = bytearray([0b11111111])
print(repr(ba))
输出
bytearray(b'\xff')
代码:
要解码:
a = int.from_bytes(byte, 'little')
您使用的是什么版本的python?示例中的代码在3.3中给出了一个ValueError
。1@PatrickHaugh我想是2.x。由于打印
statement@MooingRawr与OPs相关的文件适用于3.1Huh。。。。。。它首先为我链接到2.7我的apologys(可能看错了标签…),如果你在Python2中键入help(bytes)
,它会显示str
帮助页面。
a = int.from_bytes(byte, 'little')