gpt4 book ai didi

c++ - 将 4 字节 int 解释为 4 字节 float

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:44 24 4
gpt4 key购买 nike

看看这个简单的程序:

#include <iostream>
using namespace std;

int main()
{
unsigned int i=0x3f800000;
float* p=(float*)(&i);
float f=*p;
cout<<f;
}

这是我对程序的期望:

  1. 最后一行:我们必须在输出中看到 f
  2. 上一条:fp指向的值。
  3. Previous:p 指向名为i 的变量地址中的值。 (即 i 的值)
  4. i0x3f800000

所以我希望在输出中看到 0x3f800000,但它打印的是 1。为什么?

ap1019@sharifvm:~$ ./a.out
1
ap1019@sharifvm:~$

最佳答案

你所做的是 reinterpret_cast 指向 int 的指针指向 float 并通过检索 float 值转换后的指针。

一般来说,这是未定义的行为,但是在您的机器上发生了 intfloat 具有相同的大小,并且代表 int< 的字节0x3f800000,也代表float1

关于c++ - 将 4 字节 int 解释为 4 字节 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29847288/

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