операциями туго.
мне с чего-то хотя бы начать декодить руками. я так понимаю, что в такой строке
b'\r\xb3\x06\xff\x7f\x0c\x06\x06\x9c\xaf\x9e\xaa\x941\x89'
всё подряд идёт. Сначала length из структуры. Затем сама структура payload с её полями - src, dst, и тд.
мне эти 3 поля понять бы как вытащить.
типа должно быть
length = 13
src = 819
dst = 16383 (Это подписано в задаче - 0x3FFF на самом деле)
ну и дальше уже сам, наверное, пойму как докрутить
Посмотри на int.from_bytes, int.to_bytes Потом можешь сделать себе reader с курсором
всё равно не пойму, как эти varuint обработать. в моём примере со строкой как-то так получается. первый байт \r - это 13 (проверил через int.to_bytes). последний байт тоже проверил. Плюс посередине байты x06 - это шестёрки, у меня в выходных данных тоже две шестёрки подряд есть. остаётся понять как эти 5 байт (src/dst) разбить на 2 числа по 7бит ;c
& 0x7f 0x7f = (1 << 7) - 1
не понял. У меня пока есть b = b'\xb3\x06\xff\x7f\x0c' некоторая последовательность байт. И на самом деле это должны быть числа 819 и 16383 но что-то такие числа не получить
это два varuint'а?
Обсуждают сегодня