Начиная с C ++ 20, вы можете использовать std::bit_cast
:
std::bit_cast<double>(data)
До C ++ 20 вы можете использовать std::memcpy
:
double d;
static_assert(sizeof d == sizeof data);
std::memcpy(&d, &data, sizeof d);
Обратите внимание, чторезультат будет варьироваться в зависимости от представления с плавающей запятой (хотя IEEE-754 является вездесущим), а также от того, имеют ли типы с плавающей запятой и целочисленные значения одинаковые порядковые номера.