gpt4 book ai didi

c - 如何打印出 float 的每一位?

转载 作者:太空狗 更新时间:2023-10-29 14:49:39 24 4
gpt4 key购买 nike

我正在尝试用 C 打印出 float 的每一位。

我可以用这个来处理整数:

int bit_return(int a, int loc)

// Bit returned at location
{
int buf = a & 1<<loc;

if (buf == 0)
return 0;
else
return 1;
}

如果我将 int a 替换为 float a,编译器将无法编译。

有解决办法吗?


复制下面的评论并重新格式化

好的,对于不清楚的人,我把我的整个代码贴在这里:

#include <stdio.h>
#include <stdlib.h>

int bit_return(int a, int loc) // Bit returned at location
{
int buf = a & 1<<loc;
if (buf == 0)
return 0;
else
return 1;
}

int main()
{
int a = 289642; // Represent 'a' in binary
int i = 0;
for (i = 31; i>=0; i--)
{
printf("%d",bit_return(a,i));
}
return 0;
}

最佳答案

感谢 Pascal Cuoq 的评论。我终于弄清楚如何解决我自己的问题。是的,只需将 float 的地址分配给指向整数的指针,然后取消引用它。这是我的代码解决方案:

#include <stdio.h>

// bit returned at location
int bit_return(int a, int loc)
{
int buf = a & 1<<loc;

if (buf == 0) return 0;
else return 1;
}

int main()
{
//11000010111011010100000000000000
// 1 sign bit | 8 exponent bit | 23 fraction bits
float a = -118.625;
int *b;
b = &a;

int i;
for (i = 31; i >= 0; i--)
{
printf("%d",bit_return(*b,i));
}

return 0;
}

关于c - 如何打印出 float 的每一位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1697425/

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