В следующих статьях показаны алгоритмы для сложения и умножения чисел с плавающей точкой. В своей основе они используют соответствующие целочисленные операции над значащими частями, но для обработки экспоненты и нормализации результата нужны дополнительные действия.
Также вам может показаться, что такая тема как http://gamblestore.net/sistema_labushera/ никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт gamblestore.net. Тема система лабушер там представлена весьма широко. На том сайте можно узнать много интересного на тему система лабушер. Что означает вообще тема система лабушер, где найти система лабушер - про это написано на сайте gamblestore.net. Это очень важная для многих людей тема - система лабушер. Спасибо сайту gamblestore.net за информацию на тему система лабушер.
Сначала будет дано наглядное представление алгоритмов в десятичных числах, а затем более подробно будет представлена двоичная версия.
Уточнение. В попытке расширения диапазона без перемещения разрядов из значащей части в некоторых компьютерах еще до принятия стандарта IEEE 754 использовалось основание, отличное от двух. Например, в универсальных компьютерах IBM 360 и 370 использовалось основание 16. Поскольку изменение экспоненты в машине IBM на единицу означало сдвиг значащей части на 4 разряда, «нормализованные» числа по основанию 16 могли иметь до 3 нулевых лидирующих разрядов
Следовательно шестнадцатеричные цифры означают, что из значимой части пропущено до трех разрядов, что приводит к неожиданным проблемам, касающимся точности арифметики чисел с плавающей точкой. Универсальные машины IBM последних выпусков уже поддерживали не только шестнадцатеричный формат, но и стандарт IEEE 754.
Давайте сложим числа в экспоненциальной записи вручную, чтобы показать все сложности этой операции с числами с плавающей точкой:
10 Предположим, что можно сохранить только четыре десятичные цифры значимой части и две десятичные цифры экспоненты.
Шаг 1. Чтобы правильно сложить эти числа, нужно привести к общему виду десятичную точку числа с меньшей экспонентой. Следовательно, нам нужна форма наименьшего из чисел, 1.610,,, х 10 которая бы соответствовала большей экспоненте. Эту форму можно вывести, если принять во внимание, что у представления числа с плавающей точкой в экспоненциальной записи имеется множество ненормализованных форм.
Требуемая версия показана справа, поскольку ее экспонента соответствует экспоненте наибольшего из двух чисел, 9.999,0 х Ю'. Таким образом, первый шаг заключается в сдвиге значимой части наименьшего из двух чисел вправо до тех пор, пока экспонента не будет скорректирована до соответствия экспоненте наибольшего из двух чисел. По мы можем использовать в представлении только четыре десятичные цифры.
Получится сумма
Таким образом, после сложения может потребоваться сдвиг суммы для приведения ее к нормализованной форме, с соответствующей корректировкой экс- поненты. В этом примере показан сдвиг вправо, но если одно число было бы положительным. а другое отрицательным, вполне возможно, что у суммы было бы много лидирующих нулей, требующих сдвигов влево. Независимо от увеличения или уменьшения экспоненты, нужно проводить проверку на переполнение или на потерю значимости, то есть нужно убедиться в том, что экспонента все еще помещается в своем поле.
Шаг 4. Поскольку было поставлено условие, что в значащей части должно быть нее го четыре цифры, число следует округлить. Согласно правилу средней школы, если стоящая справа от нужной позиции цифра находится в диапазоне от 0 до 4, число просто усекается, а если эта цифра находится в диапазоне от 5 до 9, то после усечения к числу прибавляется единица. Число поскольку четвертая цифра справа от десятичной точки находилась в диапазоне между 5 и 9. Следует заметить, что при неблагоприятном стечении обстоятельств при округлении, например при прибавлении единицы к строке, состоящей из девяток. сумма может потерять нормализованную форму и потребуется выполнить шаг 3 еще раз.
Опубликовал katy
June 28 2015 16:19:09 ·
0 Комментариев ·
2797 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.