Задать вопрос
  • Преобразование типов в си?

    @ashmigirilov
    Доступ за пределы памяти при преобразовании типов вы не получите.

    Вероятные сценарии:

    1. Если двоичное представление int не соответствует правилам представления числе с плавающей точкой, то вы получите nan в float и дальше (в зависимости от настроек окружения floating point) либо распространение nan на дальнейшие вычисления и возникновение floating point exception, либо обнуление nan-переменной, как поведение ОС по умолчанию и дальнейшая ошибка в вычислениях.

    2. Если двоичное представление int-числа "ложится" на стандарт ieee754, то получите какое-то неожиданное, но корректное (с т.з. стандарта представления числа) значение с плавающей точкой, как следствие ошибку в дальнейших вычислениях.

    Делать подобные преобразования имеет смысл только при четком понимании, зачем это делается. Как один из вариантов - реализация какого-то бинарного протокола взаимодействия между системами, и то есть варианты получше. Кстати, gcc на подобные преобразования выдает предупреждения.