Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций ОКО-2015.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.69 Mб
Скачать

2.4.6 Умножение и деление чисел в форме с плавающей точкой

Представим операцию умножения в виде:

.

тогда:

,

где ; .

Знак произведения определяют путем суммирования по модулю 2 цифр в знаковых разрядах сомножителей:

.

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

Представим операцию деления в виде:

.

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

,

где ; .

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

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

Для этого удобно использовать дополнительные коды. В процессе выполнения операций над порядками возможно как переполнение порядков, так и антипереполнение.

Общий алгоритм выполнения операций умножения и деления:

    • определение знака результата;

    • сложение и вычитание порядков;

    • умножение и деление мантисс;

    • нормализация результата;

    • округление результата.

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

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

Таблица 2.22 – Результаты округления мантиссы результата

xm

xm+1

x’m

0

0

0

0

0

1

1

+(1/2)2-m

1

0

1

0

1

1

1

-(1/2)2-m

2.4.7 Алгоритмы выполнения операций над числами в форме с плавающей точкой, в представлении IEEE-754

Вещественное число может быть представлено в каком-либо формате стандарта IEEE–754 следующим образом:

.

С учетом условия нормализации ( ), минимальные и максимальные абсолютные значения мантисс:

.

.

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

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

При умножении смещенный порядок произведения определяется в соответствии с рассмотренными выше правилами. Мантисса произведения может иметь нарушение нормализации.

Проанализируем различные ситуации:

1. .

Нет нарушения нормализации.

2. .

Нет нарушения нормализации.

3. .

Здесь имеет место нарушение нормализации влево на 1 разряд.

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

1. .

Нет нарушения нормализации.

2. ; .

Нарушение нормализации вправо на 1 разряд.

3. ; .

Нет нарушения нормализации.

4. .

Нет нарушения нормализации.