0
Tl; др: Учитывая x,i = b'', 10
, как я могу сцепить i
на x
, в результате чего x == b'\x10'
?Append числовое значение двоичной строки
Я пытаюсь кодировать число в 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
Однако это не удается, потому что я не могу добавить строку в байты.
Как эффективно принять целочисленное значение и добавить его в двоичную строку?
Единственный вариант, я получил, что 'работает' является 'ЬиЕ + = CHR (байт) .encode ('ASCII')', но это не пахнет эффективным. – Phrogz