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

Прогресс обновления прошивки показывает 0% до самого конца

uint32_t written = 37000;   /* записано байт */
uint32_t total   = 51200;   /* размер образа */
uint8_t  percent = written / total * 100;

На экране всё время 0%, а в самом конце — сразу 100%. Как исправить расчёт?

  • Сначала умножить на 100, потом делить на total
  • Объявить percent как uint32_t вместо uint8_t
  • Добавить к результату 0.5 для округления
  • Заменить деление сдвигом вправо на 16 бит

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

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

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

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