Вступить в клуб →
сложнаявопросБиты, целые типы и арифметика на МК

Code review завернул разбор float из пакета по указателю

Пакет от датчика: байт типа, затем 4 байта float в формате IEEE 754, порядок байтов совпадает с порядком МК. Разбор:

uint8_t buf[5];   /* buf[0] — тип, buf[1..4] — значение */
float t = *(float *)(buf + 1);

На текущей плате работает, но ревьюер требует переписать. Как правильно получить float?

  • Скопировать 4 байта в float через memcpy
  • Собрать uint32_t сдвигами и привести (float)
  • Прочитать как *(double *)(buf + 1)
  • Взять (float)buf[1] как первый байт числа

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела