tl; dr :鉴于x,i = b'', 10
,如何将i
连接到x
,从而产生x == b'\x10'
?
我正在尝试将Python中的数字编码为varint作为protobuf编码的标头。
这是我的代码:
def encode_varint(value):
buf = b''
while True:
byte = value & 0x7f
value >>= 7
if value:
buf += chr(byte | 0x80)
else:
buf += chr(byte)
break
return buf
但是,这会失败,因为我无法将字符串附加到字节。
如何有效地获取整数值并将其附加到二进制字符串?
答案 0 :(得分:0)
# option 1 (reportedly slower)
buf = b''
buf += bytes([byte])
# option 2 (reportedly faster)
buf = bytearray()
buf.append(byte)