Порядок следования битов никогда не должен быть проблемой, если вы не используете struct
с битовыми полями (что является хорошей причиной, чтобы избежать этого).
Кроме того, вы можете читать данные только по одному байту за раз. Если вы хотите прочитать 7 бит из байта, вам нужно применить битовую маску к значению байта.
Например, если байт содержит одно значение в старшем бите и другое в младшем 7биты, вы должны извлечь их следующим образом:
field1 = (byte & 0x80) >> 7;
field2 = byte & 0x7f;