C语言中 Float的精度 比较 加减算法有关问题

C语言中 Float的精度 比较 加减算法问题
首先,Float的存储方式我明白,这个不用讲了。
问题1:Float根据符号位,指数为,有效位转换成功后,存储在内存中的时候是直接存储的转换后的字符,还是将转换后的字符取补码存储?
问题2:Float在存储的时候指数要用到指数偏差,是为了解决"如果使用二补数的有号数,会产生不易比较"的问题,我想知道Float是如何实现比较的。
问题3:Float有精度缺失,譬如2.25存储时是不会的,但是2.2存储的时候应为0.2无法取准,会产生精度缺失,这个我明白算法。然后另一种譬如我的值是1.23456789,有效位是9位,溢出了2位,这个在存储的时候是怎么处理的,直接丢失吗?
问题4:Float的加减法,int等整型的加减法是通过补码运算的,那Float的运算是怎么进行的?

thanks各位大神!
------解决思路----------------------
1、尾数位和整数一样的方式,负数也是补码的
2、靠浮点CPU实现的,一般也不清楚
3、直接丢了
4、靠浮点CPU实现的
------解决思路----------------------
浮点数的尾数,是原码表示的,不是补码表示
指数部分是移码表示的

加减的时候和手动加减一样,先看符号,再对齐指数,再尾数加减。

浮点数的设计,主要方便乘除计算,而不是加减计算。

数据丢失看硬件设计,或者软件实现。可能有舍入圆整,也可能没有舍入圆整(直接舍去)
这可能是硬件设计的时候就固定下来的,也可能是设计为,可以控制的和选择的。

至于软件实现,很多浮点库,是为了仿真对应的硬件实现,这种软件实现可能和硬件实现一致。
比如,TC,可以使用硬件浮点库计算,也可以软件仿真计算浮点数运算

这种软件实现,就是软件实现FPU的指令代码,每条指令,都有对应的软件代码实现他。
当浮点处理器,不存在的时候,可以用软件仿真指令,直接代替对应的硬件指令。

也有可能只是实现一个浮点运算库,那么就是库的设计者的事情了。