June 24th, 2019

Формы экспоненциальной записи

Ранее я писал, что числа в экспоненциальной форме еще называют числами с плавающей запятой и что такие числа для разных задач записывают по-разному.

Итак, у нас есть два обычных вещественных числа, очень большое и очень маленькое, которые мы уже рассматривали:

1) 2 010 000 000 000
2) 0,00000000000503

Когда в прошлом веке возникла задача представления таких чисел в компьютере (имеется в виду создание типов данных для работы с вещественными числами, а не просто отображение вещественного числа на дисплее), выбрали представлять их в экспоненциальной записи. Но, как уже упоминалось выше, экспоненциальная запись может быть разных форм.

В математике зачастую для приведения числа в экспоненциальный вид запятую, разделяющую целую и дробную часть числа, передвигают левее старшего значимого разряда числа. Под «значимым» имеется в виду разряд, не равный нулю. И чем левее в ряду цифр находится разряд, тем он старше.

Пример:
1) 2 010 000 000 000 = 0,201 * 1013 = 0,0201 * 1014 = 0,00201 * 1015 = ...
2) 0,00000000000503 = 0,503 * 10-11 = 0,0503 * 10-10 = 0,00503 * 10-9 = ...

Такая форма экспоненциальной записи числа называется нормальной. Почему «нормальная»? Видимо, потому, что такая форма математикам кажется простейшей.

Однако, как видно из примера, в этой форме одно и то же число можно представить разными способами, что не устраивало специалистов, поэтому для представления вещественных чисел в компьютере была выбрана другая форма экспоненциальной записи, которая называется нормализованной. Соответственно, процесс приведения числа к этой форме называется нормализацией.

Сложно понять, почему нельзя было придумать другое название. Очевидно же, что может возникнуть путаница между «нормальной» и «нормализованной» формами. Спишем на недостаток гуманитарного образования («что-то физики в почете, что-то лирики в загоне»).

В нормализованной форме экспоненциальной записи числа запятая передвигается и фиксируется сразу же справа от старшего значимого разряда. Пример:

1) 2 010 000 000 000 = 2,01 * 1012
2) 0,00000000000503 = 5,03 * 10-12

В этой форме вещественное число может быть представлено только одним способом, так как в этой форме не разрешается отодвигать запятую от старшего значимого разряда.

Недостатки для реализации в компьютере у этой формы тоже есть. Например, в этой форме невозможно представить нуль, так как слева от запятой всегда находится значимый (то есть не равный нулю) разряд числа.