СЛОЖЕНИЕ ЧИСЕЛ В МАШИНАХ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ




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

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

Чтобы уяснить сущность представления числа в нормальной форме, обратимся к конкретному примеру. Возьмем число 525,34 в десятичной системе счисления. Это число можно представить в виде произведения двух сомножителей:

525,34 = 52,534 101

или

525,34 = 0,052534 104.

Очевидно, в общем случае всякое число N можно записать в виде произведения двух сомножителей:

 

N = m q p.

 

где m – дробное число;

p – целое число;

q – основание системы счисления.

 

Число N считается представленным в нормальной форме, если первый множитель m является правильной дробью, т. е. выполняется условие |m|<1. В таком случае множитель m называют мантиссой, а показатель степени p – порядком числа.

Число 525,34 для представления в нормальной форме необходимо преобразовать следующим образом:

 

525,34 = 0,52534 103.

 

Пусть в цифровой машине для изображения мантиссы отведено пять цифровых разрядов, а для изображения порядка – два. Тогда в нормальной форме число 525,34 будет записано так:

 

+ 52534 + 03.

 

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

 

525,34 = 0,052534 104

525,34= 0,0052534 105 и т. д.

Порядок числа может быть не только положительным, но и отрицательным. Так, число 0,003427 можно представить в виде произведения:

 

0,003427 = 0,3427 10-2.

 

Соответственно запись числа в нормальной форме будет иметь следующий вид:

 

+ 3427 – 02.

 

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

Например, число в двоичной системе счисления 1101,01 = 0,110101 10100. Здесь 10 – основание двоичной системы счисления. В нормальной форме число запишется так:

 

+ 110101 + 100.

Различают нормализованные и ненормализованные нормальные числа. Если в первом разряде мантиссы стоит цифра, отличная от нуля, число называют нормализованным, если же эта цифра – нуль, число называют ненормализаванным. Желательно хранить числа в машине в нормализованном виде, так как при этом не теряются последние разряды мантиссы.

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

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

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

 

Случай 1. Сложение происходит без переполнения разрядной сетки и нарушения нормализации.

В ячейках машины имеются следующие записи:

слагаемое Х 1 100100110 0 011

слагаемое Y 0 110001101 0 101

 

Сложение выполняется в несколько этапов.

 

Первый этап. Сдвиг вправо слагаемого Х (денормализация) с целью уравнивания его порядка 011 с порядком 101 слагаемого Y.

После сдвига запись слагаемого Х будет иметь вид:

 

Х 1 001001001 0 101.

 

Второй этап. Перевод мантисс Х и Y в модифицированный обратный код:

мантисса Х 11 110110110;

мантисса Y 00 110001101.

 

Третий этап. Сложение мантисс: Х 11 110110110+

Y 00 110001101

100 101000011+

'---------------® 1

X + Y 00 101000100.

Четвертый этап. Перевод суммы X + Y в прямой код 0 101000100 и запись результата:

Х+ Y 0 101000100 0 101.

 

Случай 2. Сложение происходит без переполнения разрядной сетки, но результат после перевода в прямой код оказывается ненормализованным. Такой случай носит название нарушения нормализации вправо.

Перед записью результата в ячейку производится нормализация.

 

В ячейках машины имеются записи:

 

слагаемое Х 0 100100110 0 100

слагаемое Y 1 100101010 0 110

Сложение выполняется в пять этапов.

 

Первый этап. Уравнивание порядков. После сдвига первое слагаемое запишется в ячейке следующим образом:

 

Х 0 001001001 0 110.

 

Второй этап. Перевод обеих мантисс в модифицированный обратный код:

Х 00 001001001;

Y 11 011010101.

 

Третий этап. Сложение мантисс:

+ Х 00 001001001

Y 11 011010101

Х + Y 11 100011110

 

Четвертый этап. Перевод результата в прямой код:

X + Y 1 011100001 0 110.

 

Пятый этап. Нормализация и запись результата.

 

Х + Y 1 111000010 0 101.

 

Случай 3. При сложении происходит переполнение разрядной сетки. Чтобы определить порядок работы в этом случае, необходимо отметить два обстоятельства:

а) причиной переполнения является то, что сумма |Х+Y|>=1. Очевидно, если бы после уравнивания порядков мантиссы были дополнительно сдвинуты на один разряд вправо, переполнения бы не произошло;

б) признаком переполнения является наличие разных цифр в знаковых разрядах, причем комбинация 01 указывает на то, что сумма положительна, а комбинация 10 – на то, что сумма отрицательна. Следовательно, по левому из двух знаковых разрядов можно сразу установить знак суммы (0 à (+); 1 à (–)).

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

 

Пример.

Х 1 101011011 0 110;

Y 1 110001101 0 101.

 

Первый этап. Сдвиг второго слагаемого для уравнивания порядков:

 

Y 1 011000110 0 110.

 

Второй этап. Перевод мантисс в модифицированный обратный код:

 

Х 11 010100100;

Y 11 100111001.

 

Третий этап. Сложение мантисс:

 

Х 11 010100100

Y 11 100111001

1 10 111011101+

'---------------® 1

Х+Y 10 111011110

 

Произошло нарушение нормализации влево.

Четвертый этап. Сдвиг результата вправо:

 

11 011101111.

 

Пятый этап. Перевод в прямой код и запись результата:

 

1 10001 0000 0 111.

 

Вследствие сдвига вправо (четвертый этап) порядок увеличился на единицу (был 110, стал 111).

Контрольные вопросы

1. Представление чисел в форме с плавающей точкой.

2. Что такое нормализованная мантисса?

3. С какой целью используется представление чисел в форме с плавающей точкой.

4. Каков диапазон чисел, представленных в форме с плавающей точкой.

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

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

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

8. Как переводятся дробные числа из десятичной в двоичную СС?

9. Как переводятся дробные числа из двоичной в десятичную СС?

10. Сколько нужно двоичных разрядов, чтобы представить двузначное десятичное число в диапазоне от 11 до 99?

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-12-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: