我正在尝试做如下的事情
#include <stdio.h>
int main() {
float a = 0b00000100;
float b = 0b0.0110; // this line is not working
printf("The value of first float is = %f\n", a * 15);
printf("The value of second float is = %f\n", b);
return 0;
}
我在这里的唯一目标是为 b
分配小数二进制数,即 0.0110
,结果应为 0.375
。有人有什么想法吗?
最佳答案
即将推出的 C23 标准引入了整数的 0b0110
语法,但不适用于浮点值。
您可以这样写:
,而不是float b = 0b0.0110;
float b = 0b0110 / 16.F;
或者更多带有明确的小数位数:
float b = 0b0110 * 0x1p-4F;
对于较旧的 C99 编译器:
float b = 0x6p-4F;
关于c - 在 C 中将二进制分数分配给浮点变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77293956/