Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Архитектуре и организации ЭВМ.doc
Скачиваний:
129
Добавлен:
20.06.2014
Размер:
6.09 Mб
Скачать

Плавающая запятая

В ЭВМ с плавающей запятой число представляется в виде:

X = ± Mx* q±p,

где: Mx- мантисса числа;

q - основание системы счисления;

p - порядок.

Разрядная сетка машины принимает следующий вид:

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

Пусть "m" разрядов отведено под изображение мантиссы, а "k" разрядов под изображение порядка. Тогда для двоичной системы и нормализованного вида числа:

q = 2;

0,1 Mx < 1 - нормализованная мантисса.

То есть диапазон чисел:

Абсолютная ошибка представления числа в ЭВМ с плавающей запятой равна:

|ΔX| 0,5*2-m

Так как

2-1|Mx|1-2-m,

то минимальная относительная ошибка:

|ΔX|min= (0,5*2-m) / (1 - 2-m)2-(m+1), при m - большом,

а максимальная относительная ошибка:

|ΔX|max=(0,5*2-m) / (2-1) = 2-m

Видно, что относительная ошибка в ЭВМ с плавающей запятой не зависит от порядка числа. При этом точность представления больших и малых чисел изменяется незначительно.

Теоретически "плавающая запятая" имеет преимущества перед "фиксированной". Но соответствующее устройство получается намного сложнее. К тому же специфика выполнения операций с плавающей запятой требует большего числа микроопераций, что приводит к снижению быстродействия ЭВМ. Однако "плавающая запятая" снимает с программиста обязанность отслеживать положение запятой в вычислениях и значительно упрощает сам процесс программирования вычислительных задач.

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

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

  • сложение

  • сдвиг

  • передача

  • преобразование кодов.

Сложение выполняется по правилам сложения чисел в позиционных системах счисления.

То есть эта операция выполняется поразрядно, а возникающий в младших разрядах перенос направляется в старшие разряды.

Пример:

0,101101 1-ое слагаемое

+0,000101 2-ое слагаемое

________

0,101000 сумма

0,00101 перенос

________

0,100010 сумма

0,01 перенос

________

0,110010 сумма

Операции сложения производятся одновременно над всеми разрядами двух слагаемых и продолжаются до тех пор, пока возникают переносы. Возникающие переносы приводят к продолжению операции. Это одна из особенностей позиционных систем. Видим, что собственно операция определения частичной суммы слагаемых выполняется в один приём, а возникающие переносы распространяются на всё более старшие разряды.

Сдвиг

Различают два вида микрооперации сдвига:

  • логический сдвиг;

  • арифметический сдвиг;

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

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

Передача.

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

Различают два вида передач:

  • запись (с разрушением ранее записанной информации);

  • чтение (без разрушения).