0
tl; dr: Gegeben x,i = b'', 10
, wie kann ich verketten i
auf x
, was zu x == b'\x10'
?Anfügen numerischer Wert Binärkette
Ich versuche eine Zahl in Python als varint als Header für eine Protobuf-Codierung zu kodieren.
Hier ist der Code, den ich habe:
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
Dies ist jedoch nicht, weil ich nicht einen String in Bytes anhängen können.
Wie kann ich effizient einen ganzzahligen Wert nehmen und an eine binäre Zeichenfolge anhängen?
Die einzige Option, die ich bekommen habe, dass "funktioniert" ist 'buf + = chr (byte) .encode ('ascii')', aber das riecht nicht effizient. – Phrogz