Протокол, такой как FAST для кодирования данных, очень умный в минимизации объема данных, которые необходимо отправить. По существу, каждый получает char *, считывая первые пару байтов как целое число, дает вам номер идентификатора, который указывает вам на инструкции о том, как декодировать остальное (то есть он сообщает вам, что остальные байты, например, учитывают int, строка, unsigned int, другое unsigned int, вложенное сообщение и т. д.), а следующие пару байтов говорят вам (в каждом бите), есть ли следующие поля или нет. 8-й бит в каждом байте зарезервирован для обозначения границ между данными.Что такое быстрый способ декодирования протокола данных, например FAST, в котором данные закодированы в байтах с битами как флаги существования?
Декодирование такого протокола кажется невозможным без линейного обхода бит ops (ands, ors, shifts, bit checks) ... есть ли способ сделать это быстрее?
Что заставляет вас думать, что простое приложение побитовой операции не будет достаточно быстро для вас? Эти операции, как правило, очень быстрые. – dmckee
Это привлекло мое внимание, но вы не указали ссылку ... это правильный? en.wikipedia.org/wiki/FAST_protocol –
@IraBaxter да, это правильно –