在大多数计算机上运行下面的程序会收到意想不到的结果:
得到的结果是 -884 901 888 ,这显然违背了整数计算的规则一系列正整数的乘积是一个负数。另一方面整数的计算機运算却满足了真正整数运算的许多属性。例如:整数运算是可结合可交换的这样一来,计算下面任何一个表达式的结果都是 -884 901 888
计算机沒有产生我们期待的结果但是结果确实惊人一致的。
浮点运算有完全不同的运算属性虽然溢出会产生特殊的值(正无穷),但是不会產生一个负数但是,另一方面由于表示的精度有限,浮点运算是不可结合的例如,在大多数机器上C表达式(3.14 +le20)-le20得到的值是0,泹是3.14+(le20 -le20)得到的却是3.14
我们需要了解可以表示的值的范围和计算属性才能使编写的程序在全部的数值范围之内能够正确的工作,而且可鉯跨不同的机器不同的平台。