相关疑难解决方法(0)

如何用C表示内存中的FLOAT编号

在阅读教程时,我遇到了如何在内存中表示浮点数.本教程有一个带浮点数的例子.

   float a=5.2  with below Diagram
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

任何人都可以告诉我5.2如何转换为二进制文件以及它如何在上图中的内存中表示?

c floating-point

39
推荐指数
4
解决办法
7万
查看次数

最小化C中浮点错误的经验法则?

关于最小化浮点运算中的错误,如果我在C中执行如下操作:

float a = 123.456;
float b = 456.789;
float r = 0.12345;
a = a - (r * b);
Run Code Online (Sandbox Code Playgroud)

如果我将乘法和减法步骤分开,计算结果是否会改变,即:

float c = r * b;
a = a - c;
Run Code Online (Sandbox Code Playgroud)

我想知道CPU是否会以不同方式处理这些计算,从而在一种情况下误差可能会更小?

如果不是,我认为无论如何,是否有任何良好的经验法则来缓解浮点错误?我可以按照有用的方式按摩数据吗?

请不要只说"使用更高的精度" - 这不是我所追求的.

编辑

有关数据的信息,在一般意义上,当操作导致非常大的数字(如123456789)时,错误似乎更糟.小数字(例如1.23456789)似乎在操作后产生更准确的结果.我想象这个,还是扩大数字有助于准确?

c floating-point 32-bit floating-accuracy

3
推荐指数
1
解决办法
364
查看次数

标签 统计

c ×2

floating-point ×2

32-bit ×1

floating-accuracy ×1