考虑值A = 2.0 x 10 30 ,B = -2.0 x 10 30 ,C = 1.0和顺序
X: = A + B Y: = A + C
X: = X + C Y: = Y + B
在以32位表示浮点数的计算机上执行。 X和Y的值将为
(A) X = 1.0,Y = 1.0
(B) X = 1.0,Y = 0.0
(C) X = 0.0,Y = 1.0
(D) X = 0.0,Y = 0.0答案: (B)
说明:给定32位表示形式。因此,最大精度可以是32位。
因此,A + C应该使第31位为1,这肯定超出了A的精度水平(它是第31位而不是第31位)。因此,此加法运算将仅返回将分配给Y的A值。
因此,Y + B将返回0.0,而X + C将返回1.0。
请注意,2000和2 * 10 ^ 3表示形式有所不同。结果取决于幅度部分的可用位数。我们无法调整指数部分的大小。
因此,选项(B)是正确的。
这种解释是由Piyush Doorwar贡献的。
这个问题的测验