old*_*959 -5 floating-point numerical-methods
我们可以将1.0表示为2 ^ 0 x 1.0,将小于1.0的最大可表示数表示为k,其中k = 2 ^ 0 x 0.111 ....... 1截断为拟合.
然后差值或ulp为1.0 - k = 2 ^ 0 x 0.00000 ..... 1.
与机器epsilon不同,我们有N epsilon = 2 ^ 0 x 1.000000 .... 1 - 2 ^ 0 x 1.000 = 2 ^ 0 x 0.000 ..... 1?
为什么正确的值是一半?
另外,如何计算除1.0以外的值的ulp?
有限浮点数表示为符号(+或 - ),固定数n + 1的数字d 0,d -1,d -2,d - n,在某些基数b和指数e中,这样表示的数字是符号 d 0 .d -1 d -2 ... d - n × b e.对于这个答案,我们将符号设为+,b为2.
有了这种表示:
对于任何正常的浮点数,ULP是b e - n.然而,浮点格式的下限附近,IEEE 754具有低于正常数字和ULP被钳位到值b 额敏 - ñ.