@trenrnd

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

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

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

Дебаггер сразу после этой операции пишет, что Variable равен 0x4E7AB852, соответственно число совсем другое (1.015).
Спасибо за помощь!
  • Вопрос задан
  • 1431 просмотр
Пригласить эксперта
Ответы на вопрос 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;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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