Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
104
Добавлен:
19.05.2015
Размер:
187.39 Кб
Скачать

Лабораторная работа № 3.

Кодирование вещественных чисел.

Вещественные числа хранятся и обрабатываются в компьютере в формате с плавающей запятой.

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

, m – мантисса числа, q - основание системы счисления, n – порядок числа.

Представление числа в форме с плавающей запятой неоднозначно:

Для единообразия представления чисел с плавающей запятой используется нормализованная форма, при которой мантисса отвечает условию: , т.е. мантисса – правильная дробь, имеющая после запятой цифру, отличную от 0.

В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранятся).

Например: , 0.555555 – нормализованная мантисса.

Число в формате с плавающей запятой занимает в памяти компьютера 4 байта (число обычной точности) или 8 байтов (число двойной точности). При записи числа с плавающей запятой выделяются разряды для хранения знака порядка и мантиссы, порядка и мантиссы.

Формат с плавающей запятой

Кол-во разрядов, отвод. для хранен. числа

Кол-во разрядов, отвод. под порядок

Кол-во разрядов, отвод. под мантиссу

Точность вычислений (кол-во значащих цифр)

Максимальное значение порядка

Максимальное число

4 байта

8 разрядов

24 разряда

7 разрядов

8 байтов

11 разрядов

53 разряда

15 или 16 разрядов

Замечание: Диапазон изменения чисел определяется количеством разрядов, отведенных для хранения порядка числа. Точность определяется количеством разрядов, отведенных для хранения мантиссы.

Например: рассмотрим число обычной точности. Для порядка и его знака отводится 8 разрядов памяти; для мантиссы и ее знака – 24 разряда памяти.

 порядок  мантисса

знак порядка знак мантиссы

Машинный порядок, как мы видим из таблицы, изменяется от 0 до 127 (в десятичной системе счисления). Всего 128 значений. Порядок может быть как положительным, так и отрицательным. Разумно эти 128 значений разделить поровну между положительными и отрицательными значениями порядка: от -64 до 63.

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

Связь между машинным порядком (МР) и математическим порядком (Р) выражается формулой: МР = Р + 64 – формула записана в десятичной системе счисления (в двоичной системе – МР = Р + 100 0000).

Пример: Представить десятичное число 250.1875 в формате с плавающей запятой в 4-байтовой разрядной сетке.

Алгоритм решения задачи.

1.Переведем число в двоичную систему счисления с 23 значащими цифрами:

2.Нормализуем мантиссу

3.Вычислим машинный порядок в двоичной системе счисления:

1000+100 0000=100 1000

4.Запишем представление числа в 4-байтовой ячейке памяти с учетом знака числа:

0

1001000

11111010

00110000

00000000

Операции с числами в формате с плавающей запятой.

Сложение и вычитание.

При сложении и вычитании чисел в формате с плавающей запятой сначала производится подготовительная операция выравнивания порядков.

Правило выравнивания порядков: порядок меньшего (по модулю) числа увеличивается до величины порядка большего (по модулю) числа. Для того чтобы величина числа не изменилась, мантисса уменьшается в такое же количество раз (сдвигается в ячейке памяти вправо на количество разрядов, равное разности порядков чисел).

После выполнения операции выравнивания порядков одинаковые разряды чисел оказываются расположенными в одних и тех же разрядах ячеек памяти. Теперь операции сложения и вычитания чисел сводятся к сложению или вычитанию мантисс.

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

Например: Сложить числа в формате с плавающей запятой -

1.Произведем выравнивание порядков

2.Выполним сложение мантисс

3.Результат получим в нормализованном виде

Умножение и деление.

При умножении чисел в формате с плавающей запятой порядки складываются, а мантиссы перемножаются.

Например: Перемножить числа в формате с плавающей запятой -

- результат

При делении из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя.

Например: Разделить числа в формате с плавающей запятой -

- результат

3