Я пытаюсь выполнить упражнение на языке Си, целью которого является кодирование сообщения во 2-м QR-коде с помощью байтового метода.Это означает, что данная строка должна быть закодирована в сообщении с:
- 4 бита для индикатора режима (0100 в моем случае);
- 8 бит для длины сообщения;
- само сообщение (20 символов);
- 4 нулевых бита в качестве сигнала конца сообщения;
- 16 битов для
0xEC11
заполнения.
Я пытался использовать структуру с битовыми полями, как в следующем коде, но это не сработало, потому что порядок бит не может быть принудительно установлен.
typedef struct
{
unsigned char mode : 4;
unsigned int length : 8;
unsigned char *message;
unsigned char eof : 4;
unsigned int padding : 16;
} code;
Я также пытался сдвинуть влевобиты закодированного сообщения, но я снова получил сообщение об ошибке «ожидаемое значение int», которое означает (если я правильно понял), я не могу сдвинуть структуру.
Может кто-нибудь предложить элегантный способвыполняет эту задачу?