浮点运算区别于定点运算。
float operation per second,即 flops,每秒可支持的浮点运算数,经常成为衡量一个设备计算能力的指标。
浮点,浮点,这个点是什么,为什么又浮着?
答:这个点是小数点。
高票回答里把浮点运算跟小数运算做等价,其实不是那么准确的。因为这种解释没能解答这个“浮”在哪里。
我来举例子让你更好的理解浮点运算:
如果设计一个无符号 32 位的加法器,你怎么来用这 32 个 bit 呢?
你可以这么做,16 位放到整数部分,剩下 16 放到小数部分。那么这 32 位能表达的最大数是多少呢?2^16。
能表达的最小精度是多少呢?2^(-16)。
把小数点左边(即整数)的位宽和小数点右边(即小数)的位宽固定,这就是一个定点数。
如果我愿意把小数部分的位宽分给整数,或者相互分享,比如我可以 20 位放在整数,12 位放小数,在运算过程中,小数点左右的位宽可以一直变换。这就好比小数点在 32 个 bit 中浮动,这样的计算就叫浮点运算。
浮点运算有什么好处呢?对于 32 位宽来说,它支持最大的数是 2^32,支持最小的精度是 2^(-32)。这就比定点数的在同样位宽的情况下表达力更强了。