СКИПОДы 2007 полная версия (1127795), страница 54
Текст из файла (страница 54)
Использование смещенной формы позволяет производить операции над порядками,как над без знаковыми числами, что упрощает операции сравнения, сложения и вычитанияпорядков. Кроме того, использование смещенного порядка упрощает операцию сравнениянормализованных чисел с плавающей запятой, сводя ее к операции сравнения целых чисел.Следует отметить, что вещественный формат с m-разрядной мантиссой позволяетабсолютно точно представлять m-разрядные целые числа, т.е. любое двоичное целое число,содержащее не более m разрядов, может быть без искажений преобразовано ввещественный формат.Арифметика машинных чисел.Множество чисел ограниченной разрядности является моделью расширеннойчисловой прямой, т.е. числовой прямой с тремя абстракциями (потенциальнойосуществимости): нуль, положительная бесконечность, отрицательная бесконечность.Целые числа (в математике) и их аналоги в n - разрядных арифметиках тождественны(по отражаемым им количествам) в рамках их представления в этой разрядности.
При этомможно отметить основные отличия представления чисел в поле памяти человека и в полепамяти n - разрядной арифметики (компьютера):бесконечное и счётное (нумеруемое) множество целых чисел Z представляетсяотрезком [—N;+N], где N - максимальное число, представимое в этой арифметике(многоточие - общее число единиц равное n): N=(111 . .
. 1)2;бесконечное и несчётное множество действительных чисел (—¥ ;+¥ ),располагающееся на числовой оси равномерно и плотно, представляется в n-разряднойарифметике множеством с неравномерной плотностью (сгущение у нуля и сжатость состороны меньших чисел);нуль во множестве действительных чисел R в любой своей окрестности имеетмножество чисел, а нуль в n-разрядной арифметике представлен изолированно: вокрестности с радиусом равным наименьшему представимо в этой арифметике числу нетдругих чисел.С точки зрения обычной арифметики, например, в интервале (—1;1) имеетсябесконечное множество “плотно” расположенных точек, причем в любой окрестностикаждой такой точки имеется хотя бы одна точка из этого множества.
Такую арифметикуназывают часто регулярной арифметикой.Машинная же арифметика нерегулярна - точки интервала сгущаются около нуля.Кроме того, в этом интервале точка х “изолирована” - если взять её любую окрестность (х—а; х+а), где а - число, которое не превосходит машинного нуля (наименьшего представимогов машине числа), то в этом интервале нет других точек (отличных от х). Говоря языкомтеории вероятностей, плотности распределения чисел в регулярной и нерегулярнойарифметике - различны, как, впрочем, плотности распределения целых и вещественныхчисел в одной и той же арифметике.
Множество вещественных чисел в машиннойарифметике представляется как подмножество множества рациональных чисел,определяемое разрядностью арифметики.Есть и другие особенности этих множеств (связанные, например, с выполнениемопераций), но указанные выше особенности - основные.182Различия в представлении чисел в обычной и в машинной (n-разрядной) арифметикеограничивают как “арифметические возможности” компьютера, так и “компьютерныевозможности” арифметики, математики, использование математических методов,алгоритмов в компьютерах.Нужно всегда иметь в виду, что точность в теоретической математике - понятиеабстрактное и в практической математике может возникать иллюзия точности там, где её насамом деле нет, - если не произведена достаточно корректная интерпретация научнопрактической точности т.е. нет корректной договорённости о пределах возможныхзначений неизбежных погрешностей в рамках рассматриваемых вычислительных ресурсов,например, трудоёмкости и времени, а также не оговорена стратегия и тактика управленияэтой погрешностью.Так как диапазон n-разрядных чисел системы счисления с основанием p находится впределах |(x)p|£ pn—1, то для представления дробных чисел этот диапазон ещё уменьшается,так как часть разрядов необходимо отвести под изображение мантиссы.
Таким образом,имеются так называемые “зоны нечувствительности” форм представления чисел в nразрядных арифметиках.В 1937 году немецким учёным Конрадом Цузе (разработавшим, кстати говоря, нетолько ряд положений арифметических основ цифровых машин, но и прототипы ЦВМ –машины “Ц-1”, “Ц-2”) для увеличения диапазона чисел, представимых в арифметикедвоичных чисел, а также для повышения точности этого представления чисел былопредложено представление чисел в плавающей, нормализованной форме.Число x представляется в нормализованном виде: x=m´ pk, где m - мантисса числа, k целый порядок числа, p—1£ |m|<1.Пусть даны два числа x=m´ pk и y=n´ pl (k>l). Тогда можно проверить, что результатывыполнения операций будут равны:x+y=(m+n´ pl—k)´ pk ,x—y=(m—n´ pl—k)´ pk ,x´ y=(m´ n)´ pk+l ,x/y=(m/n)´ pk—l ,Если из n разрядов, отводимых под изображение чисел, m двоичных разрядов отвестипод мантиссу, k - под порядок, один разряд - под знак числа и один разряд - под знакпорядка (например, 0 - плюс, 1 - минус), то диапазон представимых в форме с плавающейзапятой чисел резко увеличивается (m+k+2=n):—(0.111 .
. . 1)2´ (10)2+(111 . . . 1)2£ x£ +(0.111 . . . 1)2´ (10)2+(111 . . . 1)2(многоточие соответствует k единицам).Числа, меньшие нижней границы положительных чисел и большие верхней границыотрицательных чисел, считаются равными нулю, не различаются между собой. Числа,большие верхней границы положительных чисел полагаются равными положительнойбесконечности, а меньшие нижней границы отрицательных – отрицательной бесконечности.Сравнение двух разных по величине чисел в арифметике с ограниченной разрядностьюможет приводить, поэтому, к неверному результату, как и сравнение двух равных в такихсистемах чисел с точки зрения математической.Такое представление очень удобно для хранения в ЭВМ, так как на самом деленеобходимо хранить не само число, а его знак, мантиссу, порядок и знак порядка и всеоперации с числами сводятся к операциям с этими, более “компактными”, объектами.Операции с этими объектами достаточно просты: сравнение знаков, увеличение,183уменьшение порядка, сложение мантисс, нормализация, т.е.
в конечном итоге сводятся кдостаточно просто реализуемым операциям сдвига, выравнивания, сравнения разрядов. Этоупрощает аппаратную их реализацию и является основой для различных архитектур –микропрограммных, RISC и др.Пример. В 16-разрядной арифметике двоичных чисел можно представить диапазонцелых чисел х: 1—215<x<215—1 (старший разряд отвели под знак числа).
Если в этойарифметике (не меняя её разрядность) отвести 7 разрядов под мантиссу, а 7 разрядов - подпорядок, то уже представим диапазон чисел: —127´ 2127<x<127´ 2127 (два разряда - под знакчисла и знак порядка; несколько упрощена и общая картина представления - длянаглядности).К “неудобствам” этой формы представления чисел можно отнести возможностьвозникновения следующих “особо опасных” ситуаций:а) если число достаточно мало, например, а=0.12Е+00, то оно может бытьпредставлено любым числом из наименьшего интервала включающего а, в частности,числом 0.120000001 или 0.199999999 и в этом случае сравнивать на равенство “в лоб”нельзя (вещественные числа в форме с плавающей запятой на совпадение опасносравнивать);б) порядок выполнения операций может влиять на результат, например, в 4-разряднойарифметике с фиксированной запятой 20.0000+0.0001=20.0001, но при этом0.2000Е+02+0.1000Е-05=0.2000Е+02;в) может возникнуть так называемая ситуация “переполнения порядка” при сложении(умножении) “очень больших чисел” или “исчезновения порядка” при сложении(умножении) “очень малых чисел”, например, результат 0.6000Е+39´ 0.1200Е+64 равен0.9999Е+99 (или не определен) и результат 0.6000Е—35´ 0.0200Е—65 равен 0.9999Е—99(или не определен) при соответствующим образом определенной разрядности десятичнойарифметики;г) при сложении чисел с плавающей запятой (а в конечном счёте, все операциивыполняются, как известно, через сложение, точнее, - через поразрядное сравнение исдвиги) происходит выравнивание порядков для последующего сложения мантисс, а привыравнивании степеней может происходить потеря (усечение) младших разрядов,например, такая ситуация может возникнуть при сложении одного “очень большого числа”с одним “очень малым числом” (почему?).Реализация операций в арифметике с плавающей запятой требует необходимостивыравнивания порядков при сложении и вычитании и нормализации результатов.
Еслидиапазоны чисел, представимых в арифметике с фиксированной запятой и с плавающейзапятой, соизмеримы, то числа с фиксированной запятой могут более точно представлять(кодировать) величины, так как свободны от часто необходимой для чисел с плавающейзапятой операции округления.
При машинной реализации такая операция обычновыполняется в устройстве-предшественнике (например, сумматор) с высокой точностью(большой разрядностью), а затем отсылается в устройство-преемник (например, регистр) сучётом заданной (например, декларированной в описаниях типов и структур данных)точности или с сохранением всех значащих разрядов. Таким образом, копированиенепосредственного результата операции происходит либо с помощью операции округления,либо с помощью операции усечения.Эти две основные операции (кроме арифметических операций) вводятся следующимобразом:усечение, отбрасывание цифр числа до определённого разряда, например, доближайшего, меньшего целого числа и т.п.;184округление, усечение с коррекцией числа по определённым правилам, например, дочисла кратного заданному числу, до ближайшего целого и т.п.Пример.