Задать вопрос
@trenrnd

Как сделать преобразование hex to float правильно?

Доброго времени суток. Изучаю программирование МК STM32F103, возникла проблема. Почему возникает такая ошибка при преобразовании?

float Variable;
Variable = 0x3EAE147B; // в десятичной - 0.340

Дебаггер сразу после этой операции пишет, что Variable равен 0x4E7AB852, соответственно число совсем другое (1.015).
Спасибо за помощь!
  • Вопрос задан
  • 1492 просмотра
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unreal Engine + ИИ
    9 месяцев
    Далее
  • Stepik
    Профессия: Разработчик C++ (Junior)
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Мы присвоили float’у целое число. Надо использовать union.
union {
        float asF;
        uint32_t asI;
    };
    asF = 0x3EAE147B; // в десятичной - 0.340
    std::cout << asF << ' ' << std::hex << asI << std::endl;
    asI = 0x3EAE147B;
    std::cout << asF << ' ' << std::hex << asI << std::endl;
    return 0;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы