小编Raz*_*777的帖子

在C++ Visual Studio中直接从float复制字节到unsigned int?

我试图直接将浮点数转换为无符号整数,没有任何隐式转换数,(所以不是C风格或静态转换)只是将字节直接复制到另一个.在Windows Visual Studio 2015中,float和无符号整数的大小是相同的(4字节),所以我认为在这方面没有任何问题...我提出了一个解决方案,但必须有一个更好的方法来做我想要的.

unsigned int x = 3;
float y = 2.4565;
*reinterpret_cast<float*>(&x) = y;
Run Code Online (Sandbox Code Playgroud)

这就是我想要的,并将X设置为1075656524.

如果有的话,我更喜欢跨平台的解决方案.我知道类型的大小可能因平台而异,所以这可能是不可能的.

编辑:为了澄清,我希望浮动的所有字节都复制到unsigned int不变.存储在float中的每个位都应存储在无符号整数中.还有一个不使用memcpy的解决方案吗?我想避免使用已弃用的函数.

c++ floating-point casting visual-c++-2015

0
推荐指数
1
解决办法
742
查看次数

标签 统计

c++ ×1

casting ×1

floating-point ×1

visual-c++-2015 ×1