我知道这是一个奇怪的事情,而且它不便携.但我有一个已分配的无符号整数数组,我偶尔想在其中"存储"一个浮点数.我不想转换浮点数或将其转换为最接近的等价的int; 我想将float的确切位图存储在unsigned int的已分配空间中,这样我以后可以将它作为float检索,并保留其原始的float值.
这可以通过简单的副本来实现:
uint32_t dst;
float src = get_float();
char * const p = reinterpret_cast<char*>(&dst);
std::copy(p, p + sizeof(float), reinterpret_cast<char *>(&src));
// now read dst
Run Code Online (Sandbox Code Playgroud)
向后复制的工作方式类似.