gpt4 book ai didi

C++ 浮点表示

转载 作者:太空宇宙 更新时间:2023-11-04 15:19:26 24 4
gpt4 key购买 nike

我正在尝试从我从 here 获得的十六进制表示中创建一个 float .对于 32.50002 的表示,站点将 IEEE 754 十六进制表示显示为 0x42020005

在我的代码中,我有这个:float f = 0x42020005;。但是,当我打印该值时,我得到的是 1.10E+9 而不是 32.50002。为什么是这样?

我正在使用 Microsoft Visual C++ 2010。

最佳答案

当您通过=float 变量赋值时,您不是为其内部表示赋值,而是为其赋值。十进制的 0x42020005 是 1107427333,这就是您要分配的值。

float 的底层表示不能以独立于平台的方式检索。然而,做出一些假设(即 float 实际上使用的是 IEEE 754 格式),我们可以稍微耍点花招:

float f;
uint32_t rep = 0x42020005;
std::memcpy(&f, &rep, sizeof f);

会给出想要的结果。

关于C++ 浮点表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22817768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com