c - 在 C 中将二进制分数分配给浮点变量

标签 c floating-point binary fractions

我正在尝试做如下的事情

#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/

相关文章:

delphi - 更改可执行文件中的内部版本号

c - 整数常量对于它的类型来说太大并且对二元运算符的操作数无效

c - 比较字符串列表的最佳数据结构和算法是什么?

c - 指向字段的指针 - 赋值错误/警告

Java 与 MySQL : float type difference

floating-point - 实数相乘时如何避免下溢?

java - 在 Java 中将整数转换为字节

c - 凯撒密码奇怪的不需要的三位数代码打印输出

是否可以为家族中的合格类型假定表示和对齐

algorithm - 如何找到不同精度的(最佳)整数比?