Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Листинг 1.1. Программа для проверки внутреннего представления чисел в компьютере



Любопытные эксперименты.

Представление чисел в машине

В компьютерной литературе утверждается, что компьютер хранит и обраба­тывает данные в двоичной системе. А действительно ли это так? Мы вводим десятичные числа и получаем на экране десятичный результат. Можно ли быть уверенным в том, что компьютер производил действия именно в дво­ичной системе? Как это проверить?

Цель эксперимента. Убедиться, что внутреннее представление чисел в со­временном компьютере по-прежнему двоичное.

Наберем следующую несложную программу, написанную на языке Паскаль (листинг 2.1).

Листинг 1.1. Программа для проверки внутреннего представления чисел в компьютере

PROGRAM BinaryRepresentationI;

VAR m, m0, i: INTEGER;

x, h: REAL;

BEGIN

WRITELN ('Vvedite m0');

READLN (m0);

FOR m: = m0-l TO m0+l DO

BEGIN h: = l/m;

x:=0;

FOR i:=l TO m DO x:=x+h;

WRITELN(m, ' ', x-1)

END

END.

Для тех, кто не очень хорошо знаком с языком Паскаль, несколько коммен­тариев. Внешний цикл for обеспечивает троекратное исполнение програм­мы для значений m от то - i до то + 1 (в нашем случае это 127, 128 и 129). Нетрудно заметить, что речь идет о числе, являющемся точной степенью двойки (т. е. 128) и двух "соседних". Далее для каждого из трех чисел m раз проделывается суммирование величины 1/m и печатается разность, показы­вающая, насколько полученное число отличается от 1. Запустив программу, мы увидим на экране дисплея следующий результат:

127 -7.2759576142Е-12

128 0.0000000000E+00

129 2.1827872843Е-11

Иными словами, только для числа 1/128, которое представляется в двоичной системе точно, результат тождественно равен нулю. А вот для двух других чисел результат получился хоть и очень маленький (10-11 — 10-12), но нену­левой.

Может быть это случайность? Проверим для других то, например 512 или 2048 — результат будет аналогичный. В то же время, при то == 126, все три результата будут отличны от нуля, т. е. степени двойки действительно явля­ются "особенными".

Отметим, что данный эксперимент можно провести и для других языков программирования. Например, для языка Basic.

Вывод. Полученные результаты можно объяснить единственным спосо­бом: компьютер действительно хранит числа и производит вычисления в двоичной системе. Именно поэтому только для степеней двойки ему уда­ется получить точный результат.





Дата публикования: 2015-07-22; Прочитано: 161 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...