gpt4 book ai didi

c - 将 int 重新解释为 float

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:41 25 4
gpt4 key购买 nike

我正在尝试通过设置它的位来创建一个 float 。我在这里读到,最好的方法可能是使用 memcpy。这是我正在使用的代码

#include <stdio.h>
#include <string.h>

float i2f(int i) {
float result;

memcpy(&result, &i, sizeof(int));

return result;
}

int main() {
printf("Size of int is %d.\n", sizeof(int));
printf("Size of float is %d.\n", sizeof(float));

int i = 0x7fffff;
float f = i2f(i);

printf("int value is %d.\n", i);
printf("float value is %f.\n", f);

return 0;
}

我得到的输出是

Size of int is 4.
Size of float is 4.
int value is 8388607.
float value is 0.000000.

有人可以解释为什么浮点值是零吗?

最佳答案

整数 0x7fffff 的位编码一个非常小的 float 值,小于 2−126%f 转换说明符没有产生足够的数字来显示该值。使用 %g%e 或指定更多数字,例如 %.99f

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

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