c ++ переносимое преобразование long в double

Мне нужно точно преобразовать длинные представляющие биты в двойные, и мой солютон должен быть переносимым на разные архитектуры (возможность быть стандартными для всех компиляторов, так как g ++ и clang ++ woulf тоже будут хороши).

m написание быстрого приближения для вычисления функции exp, как предложено вэтот вопрос отвечает.

double fast_exp(double val)
{
    double result = 0;

    unsigned long temp = (unsigned long)(1512775 * val + 1072632447);
    /* to convert from long bits to double,
   but must check if they have the same size... */
    temp = temp < 32;
    memcpy(&result, &temp, sizeof(temp));

    return result;
}

Ответы на вопрос(1)

Ваш ответ на вопрос