在阅读教程时,我遇到了如何在内存中表示浮点数.本教程有一个带浮点数的例子.
float a=5.2 with below Diagram
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我5.2如何转换为二进制文件以及它如何在上图中的内存中表示?
关于最小化浮点运算中的错误,如果我在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)似乎在操作后产生更准确的结果.我想象这个,还是扩大数字有助于准确?