如何将float变量赋值给unsigned int变量,bit image,而不是cast

use*_*872 4 c++

我知道这是一个奇怪的事情,而且它不便携.但我有一个已分配的无符号整数数组,我偶尔想在其中"存储"一个浮点数.我不想转换浮点数或将其转换为最接近的等价的int; 我想将float的确切位图存储在unsigned int的已分配空间中,这样我以后可以将它作为float检索,并保留其原始的float值.

Ker*_* SB 6

这可以通过简单的副本来实现:

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)

向后复制的工作方式类似.