166805 (740530), страница 4
Текст из файла (страница 4)
-10111 100,1100
100100
-10111
11010
-10111
Остаток 1100
Пример. Разделить =10001,111 на
=11,01
10001111 11010
-11010 101,1
100111
-11010
11011
-11010
00000
Искомый результат 101,1
Таким образов, выполнение арифметических операций в двоичной системе счисления достаточно просто. Особенно просто выполнять операции сложения, вычитания и умножения. Благодоря этому, применение двоичной системы в вычислительных машинах позволяет упростить схемы устройств, в которых осуществляются операции над числами.
Формы представления чисел с фиксированной и плавающей запятой.
При представлении числа в двоичном коде с цифрами 0,1 в каждом разряде записываются цифры 0 или 1. Так как в ЦВМ «запись» числа осуществляется с помощью технических устройств, то для представления его в такой форме необходимо располагать устройствами с двумя надежно различными состояниями, которым могут быть сопоставлены значения 0 или 1. Комбинация таких устройств, число которых соответствует количеству разрядов записываемого числа, может быть использована для представления чисел в ЦВМ.
В качестве таких устройств, могут быть использованы триггеры. Набор триггеров, предназначенных для представления чисел в ЦВМ, а также для выполнения над ними некоторых логических преобразований, называется регистром. Разумеется, число разрядов, отведенное для записи числа, соответствующее числу триггеров, в ЦВМ всегда конечно. Выбор количества разрядов для представления чисел в ЦВМ является одним из самых ответственных этапов конструирования вычислительной машины и обуславливается целым рядом требований, среди которых одно из важнейших – необходимая точность вычислений.
В ЦВМ используют две формы представления чисел: естественную и полулогарифмическую.
Числа с фиксированной запятой.
Числа с фиксированной запятой. При этой форме обычно запятая, отделяющая целую часть числа от ее дробной части, фиксируется перед старшим разрядом модуля числа.
| … |
Разряды модуля числа
Знаковый разряд
Место запятой
Таким образом, значение модуля числа всегда оказывается меньше единицы. Это условие путем выбора определенных масштабных коэффициентов должно выполнятся для исходных данных задачи и всех промежуточных результатов вычислений.
При занесении числа в ячейку памяти свободные младшие разряды заполняются нулями, а если число значащих разрядов модуля больше n – 1, то младшие разряды модуля, которые не поместились в разрядной сетке, теряются. Это приводит к погрешности, значение которой меньше единицы младшего разряда разрядной сетки, т. е. . Так, при n=16
при n=32
.
Если число имеет целую часть, то для ее хранения в разрядной сетке места нет, она теряется, число в разрядной сетке оказывается ошибочным.
Достоинство представления чисел в форме с фиксированной запятой состоит в простоте выполнения арифметических операций.
Недостатки – в необходимости выбора масштабных коэффициентов и в низкой точности представления с малыми значениями модуля ( нули в старших разрядах модуля приводит к уменьшению количества разрядов, занимаемых значащей частью модуля числа ).
Числа с плавающей запятой.
Для научно – технических расчетов необходимо представлять числа в широком диапазоны и с достаточно большой точностью. Указанным требованиям отвечают числа с плавающей запятой.
m m – 1 1 p p – 1 1
… | … |
Знак Модуль мантиссы Знак Модуль порядка
числа порядка
Число состоит из мантиссы, старший разряд которой определяет знак числа, и порядка со знаком. Значение модуля мантиссы представляется двоичным дробным числом, т. е. запятая фиксируется перед старшим разрядом модуля мантиссы, порядок представляется целым числом. Порядок указывает действительное положение запятой в числе. Код в приведенном формате представляет значение числа в полулогарифмической форме: , где М и П мантисса и порядок числа.
Точность представления значений зависит от количества значащих цифр мантиссы. Для повышения точности числа с плавающей запятой представляются в нормализованной форме, при которой значение модуля мантиссы лежит в пределах . Признаком нормализованного числа служит наличие единицы в старшем разряде модуля мантиссы. В нормализованной форме могут быть представлены все числа из некоторого диапазона за исключением нуля.
Нормализованные двоичные числа с плавающей запятой представляют значения модуля в диапазоне
где - максимальное значение модуля порядка.
Так, при p=7 -1=
=63 и диапазон представления модулей нормализованных чисел
Таким образом, диапазон чисел от до
.
Для расширения диапазона представляемых чисел при фиксированной длине разрядной сетки ( m+p ) в качестве основания системы счисления выбирается . При этом число, представляемое в разрядной сетки, приобретает значения
. Нормализованная мантисса 16 – ричного числа с плавающей запятой имеет значения, лежащее в диапазоне
.Признаком нормализации такого числа является наличие хотя бы одной единицы в четырех старших разрядах модуля мантиссы. Диапазон представления чисел в этом случае существенно расширяется, находясь при том же количестве разрядов в пределах от
до
.
Рассмотрим погрешность представления чисел с плавающей запятой. Абсолютная погрешность числа
Предельная относительная погрешность – отношение абсолютной погрешности к числу при минимальном значении модуля мантиссы нормализованного числа.
Отсюда видно, что точность представления чисел определяется количеством разрядов, отводимых в разрядной сетке под мантиссу.
В современных ЭВМ числа с плавающей запятой имеют основания системы счисления 16 и представляются в двух форматах: коротком ( с числом разрядов 32 ) и длинном ( с числом разрядов 64 ). Длинный формат предусматривает увеличения количества разрядов, отводимых в разрядной сетке под мантиссу, за счет чего повышается точность представления чисел.
Сложение чисел с фиксированной запятой
Алгебраическое сложение чисел с фиксированной запятой в цифровых машинах может производиться в одном из машинных кодов: прямом, дополнительном или обратном. Чаще всего используется либо дополнительный, либо обратный код. При этом знаковый разряд и цифровая часть числа рассматривается как единое целое, в результате чего с отрицательными числами машина оперирует как с положительными, независимо от того, представлены ли они в виде правильных дробей или в виде целых чисел. Главное достоинство дополнительного и обратного кодов заключается в том, что правильный знак суммы получается автоматически в процессе суммирования знаковых цифр операндов и цифры переноса из соседнего младшего разряда. В случае возникновения единицы переноса из знакового разряда суммы ее нужно отбросить при сложении в дополнительном коде и прибавить к младшему разряду суммы при сложении в обратном коде (т. е. произвести циклический перенос единицы переполнения).
Алгебраическое сложение много разрядных чисел обычно организуется как регулярный процесс, состоящий из n одинаковых операций поразрядного сложения вычитания, где n- количество разрядов в каждом из операндов).
При этом в зависимости от знаков слагаемых возможны четыре случая:
1) Х1 > 0, Х2 > 0, Х3 = Х1 + Х2 > 0;
2) Х1 > 0, Х2 < 0, Х3 = Х1 + Х2 > 0;
3) Х1 > 0, Х2 < 0, Х3 = Х1 + Х2 < 0;
4) Х1 < 0, Х2 < 0, Х3 = Х1 + Х2 < 0;
Примеры сложения чисел с фиксированной запятой были рассмотрены выше.
Сложение чисел с плавающей запятой
Если имеются два числа в нормальной форме: Х1 = m1 10p1 и Х2 = m2 10p2 , то для того чтобы их можно было сложить, нужно предварительно привести их к одному и тому же порядку Робщ, т. е. преобразовать одно из слагаемых, например, первое следующим образом:
Х1 = m1 10p1 = m1* 10p1 = m1* 10pобщ.
Далее можно вынести степень основания системы за скобки и произвести сложение мантисс: Х1 + Х2= m1* 10pобщ. + m2 10pобщ. = (m1* + m2 ) 10pобщ.
Преобразовывать всегда нужно меньше слагаемое, так как в противном случае произойдет переполнение разрядной сетки мантиссы преобразуемого числа.
Машинная операция сложения чисел в нормальной форме распадается таким образом, на 4 этапа:
1. Уравниваются порядки слагаемых: меньший порядок увеличивается до большего, мантисса преобразуемого числа сдвигается вправо (число денормализуется) на соответствующее количество разрядов. Практически в машинах производится вычитание порядков операндов. Знак и модуль разности Р1 - Р2 определяют соответственно, какое из слагаемых нужно преобразовывать и на сколько единиц следует сдвигать мантиссу преобразуемого числа.
2. Производится преобразование мантисс слагаемых в один из модифицированных кодов.
3. Мантиссы слагаемых суммируются по правилам сложения дробных чисел с фиксированной запятой.
4. В случае надобности мантисса суммы переводится в прямой код, производится нормализация суммы и округление ее мантиссы.