Выполнение операций над дробными числами (электроника)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:42, 7 января 2015.

Числа с фиксированной точкой

Рис. 1. Представление дробного числа в двоичныом виде.

Всегда указывается, какая часть числа отводится под целую часть числа, какая - под дробную.

Число с фиксированной точкой представляется в памяти ЭВМ в виде дроби:

,

где - число

- число знаков после точки

Сложение чисел с фиксированной точкой:

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

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

Умножение чисел с фиксированной точкой:

( уходит в числитель).

Деление на предполагает сдвиг вправо на то число разрядов, чему равно (сколько отведено под дробную часть)

Деление чисел с фиксированной точкой:

Умножение на и деление на , операция свелась к операции с целыми числами,т.е. свели к обычным операциям.

Подвох: в точности представления чисел с плавающей точкой. В нашем примере:

Рис. 2. Варианты записи числа 0,6.

Можем записать и тем, и другим способом, но они оба не равны в точности , следовательно, имеется погрешность представления дробных чисел.

Правила округления чисел с фиксированной точкой:

  1. в сторону меньшего
  2. в сторону большего
  3. в сторону ближнего

Таким образом, разная погрешность (разная точность представления чисел) ведет к разным результатам при подсчете.

Рис. 3. Отклонения для точек.

Пусть М - некоторое число, представленное в полной записи.

1) - округление в меньшую сторону.

2) - запись для округления в большую сторону.

В обоих случаях погрешность .

Тогда , погрешность та же. Просто произошло смещение точки, относительно которой происходит округление.

Погрешность меньше, либо равна значению младшего значащего разряда. Операции с точностью до должны использовать значащих разряда. ()

TemplateExampleIcon.svg Пример Пример
а) Хотим посчитать

Сделаем округление в сторону большего числа: - наиболее точный вариант (т.к. при выборе в сторону ближайшего также ).

б) Возьмем

- наиболее точное (т.к. ). При выборе в сторону ближайшего погрешность "набегает" меньше.


При выполнении операций заменяем истинное число: при замене в сторону меньшего/большего погрешность растет.

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

Числа с плавающей точкой

В числах с фиксированной точкой фиксируется количество разрядов для целой части.

Идея: берем разрядную сетку и перемещаем ее туда, где она нужна.

Основа: представление числа в виде величины мантиссы, умноженной на экспоненту:

, где - то, на сколько двигаем мантиссу по разрядной сетке.

Для упрощения интерпретации результатов:

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

Считаем, что , где мантисса.

Первая цифра после "0" должна быть значащая:

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

Нормализованный формат записи:

Рассмотрим арифметические операции.

Сложение:

(порядки равны)

, то

Необходимо произвести преобразования (если нет никаких дополнительных разрядов, то приводится к большему ). Если известно, что разница между не превышает количество дополнительных разрядов, то приводится к меньшему .

Вычитание: аналогично сложению.

Умножение:

От представления мантиссы и порядка зависит схемотехническое представление.

Стандарт представления числе с плавующей точкой: IEEE 754. В рамках этого стандарта введены три способа представления чисел с плавующей точкой:

1) Числа с одинарной точностью:

Рис. 1. Формат числа с одинарной точностью.

2)Двойной тип представления точности:

Рис. 2. Формат числа с двойной точностью.

3) расширенная точность:

Рис. 3. Формат числа с расширенной точностью.

, разрядов по 10: , остальные зарезервированы под специальные обозначения ( и др.)

- считается самым точным представлением.

Введение данного формата позволяет выполнять аппаратным методом операции сложения, вычитания, деления и умножения.

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

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