В настоящее время я работаю над задачей программирования сетевого сокета, где мне нужно декодировать запрос сообщения, который имеет форму:
uint8_t buffer[16] = {0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab}
Прочитать с помощью read ():
uint8_t buffer[2048];
read(conn->socketfd, buffer, sizeof(buffer)
Теперь мне нужно взять первый шестнадцатеричный байт 'd8', который является двоичным 11011000, и извлечь первые ЧЕТЫРЕ бита 1101 и получить его шестнадцатеричное число, которое задается 0xD.
Я борюсь с двумя частями проблемы:
- Получение 4 бита из значения d8
- Преобразование 4 бит обратно в шестнадцатеричное, ie. получение значения 0xD
Был бы очень признателен за любую помощь в этом! Заранее спасибо :)