Рубрики

ВОРОТА | GATE-CS-2000 | Вопрос 37

Рассмотрим значения 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 будут
(А) Х = 1,0, Y = 1,0
(В) Х = 1,0, Y = 0,0
(C) X = 0,0, Y = 1,0
(D) X = 0,0, Y = 0,0

Ответ: (Б)
Объяснение: Дано 32-битное представление. Итак, максимальная точность может быть 32 бита.
Следовательно, A + C должен сделать 31-ю цифру равной 1, что, безусловно, находится за пределами уровня точности A (это 31-я цифра, а не 31-й бит ). Таким образом, это дополнение просто вернет значение A, которое будет присвоено Y.
Таким образом, Y + B вернет 0.0, а X + C вернет 1.0.

Обратите внимание, что есть разница в 2000 и 2 * 10 ^ 3 представления. Результат зависит от доступного количества цифр для части величины. Мы не можем регулировать величину в экспоненциальной части.

Таким образом, вариант (B) является правильным.

Это объяснение было предоставлено Пиюшем Доорваром.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2000 | Вопрос 37

0.00 (0%) 0 votes