每个计算机科学家应该对浮点算法了解的内容有以下主张:
由于舍入误差,代数的关联定律不一定适用于浮点数。例如,当x = 10 ^(30),y = -10 ^(30)和z = 1(在1中为1)时,表达式(x + y)+ z与x +(y + z)的答案完全不同。前者,后者为0)。
在他们的例子中如何得出结论?也就是说,(x + y)+ z = 1和x +(y + z)= 0?
我知道代数的关联定律,但在这种情况下我看不到这个问题。在我看来,x和y都会溢出,因此它们都具有不正确的整数值,但仍在范围内。由于x和y将是整数,因此它们应该相加,就像应用了关联性一样。
四舍五入误差以及浮点运算的其他方面,整体上适用于浮点运算。尽管浮点变量可以存储的某些值是整数(就它们而言,它们是整数),但它们不是整数类型的。浮点变量不能存储任意大的整数,不能存储整数。尽管环绕整数运算将(a+b)-a=b
适用于任何无符号整数类型a和b,但对于浮点运算却并非如此。溢出规则不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句