Considere los valores A = 2.0 x 10 30 , B = -2.0 x 10 30 , C= 1.0 y la secuencia
X: = A + B Y: = A + C X: = X + C Y: = Y + B
ejecutado en una computadora donde los números de coma flotante se representan con 32 bits. Los valores de X e Y serán
(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
Respuesta: (B)
Explicación: Dada la representación de 32 bits. Entonces, la precisión máxima puede ser de 32 bits.
Por lo tanto, A + C debe hacer que el dígito 31 sea 1, lo que seguramente está fuera del nivel de precisión de A (es el dígito 31 y no el bit 31 ). Entonces, esta suma solo devolverá el valor de A que se asignará a Y.
Entonces, Y + B devolverá 0.0 mientras que X + C devolverá 1.0.
Tenga en cuenta que hay una diferencia en la representación de 2000 y 2*10^3. El resultado depende del número de dígitos disponibles para la parte de magnitud. No podemos ajustar la magnitud en la parte del exponente.
Entonces, la opción (B) es correcta.
Esta explicación ha sido aportada por Piyush Doorwar.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA