Jac*_*ack 3 python binary byte
bytearray类型是0 <= x <256范围内的可变整数序列.
但是,以下代码建议值可以> = 256.我存储一个9位二进制数,其最大值为: 2^9-1 = 512-1 = 511
ba = bytes([0b111111111])
print '%s' % (ba)
Run Code Online (Sandbox Code Playgroud)
9位二进制数打印为十进制511:
[511]
Run Code Online (Sandbox Code Playgroud)
我不知道预期的行为是什么,但我认为最重要的位将被丢弃以给出8位数.
PM *_*ing 10
你实际上并没有创建一个bytearray或一个bytes对象,你只是创建一个包含的字符串'[511]',因为bytes在Python 2中它只是一个同义词str.在Python 3中,您将收到一条错误消息:
ValueError: byte must be in range(0, 256)
Run Code Online (Sandbox Code Playgroud)
以下代码适用于Python 2或Python 3; 请注意,我传递了一个8位数字,所以它在范围内.
ba = bytearray([0b11111111])
print(repr(ba))
Run Code Online (Sandbox Code Playgroud)
产量
bytearray(b'\xff')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
964 次 |
| 最近记录: |