不久前,我在谷歌上搜索了这个,一无所获,不得不求助于投射指针,这有点笨拙:
constexpr float value = 205.5f;
const auto float_as_unsigned =*((uint32_t*)&value);
我刚刚意识到你可以通过工会做到这一点:
union bit_cast32
{
float f32;
uint32_t u32;
int32_t i32;
};
const auto float_as_unsigned2 = bit_cast32( 205.5f ).u32;
有更好的方法吗?
是c++20的新功能,有std::bit_cast
constexpr auto float_as_unsigned3 = std::bit_cast<uint32_t>(205.5f);