РАЗДЕЛ 2. АРИФМЕТИЧЕСКИЕ ОСНОВЫ ЭВС
1. Представление чисел с фиксированной запятой
В ЭВС числа и нечисловая информация представляются совокупностью двоичных разрядов. Совокупность двоичных разрядов, предназначенных для представления (записи) данных, называется разрядной сеткой.
В ЭВС применяют две формы представления чисел: с фиксированной запятой (точкой) и с плавающей запятой (точкой). Эти формы называют также соответственно естественной и нормальной.
При естественной форме число записывается в естественном натуральном виде с выделением в общем случае следующих компонент числа: знака, запятой и цифр числа. Для сокращения длины разрядной сетки и упрощения обработки данных в конкретных ЭВС положение запятой фиксируется схемотехнически, т.е. аппаратными средствами. Такая форма представления числа называется формой с фиксированной запятой. Такое название связано с тем, что запятая, отделяющая дробную часть от целой, фиксируется в определенном месте относительно разрядов числа. При этом в слове данных сохраняются только два структурных компонента: один знаковый разряд и n разрядов для представления цифр числа. Для кода знака обычно выделяется крайний слева разряд. В знаковом разряде 1 соответствует минусу, а 0 – плюсу. Обычно положение запятой фиксируется либо после младшего (0 разряда), либо перед старшим, (n -1) разрядом. В первом случае числа представлены как целые, во втором – как правильные дроби. При этом запятая никак не обозначается, но в алгоритмах выполнения операций (умножение, деление) ее место учтено заранее одним из указанных способов.
В случае целых чисел минимальным по модулю отличным от нуля числом будет А min = 00…01, = 1, а максимальным, которому соответствуют единицы во всех n разрядах, – A mах = 11…11, = 2 n - 1, т. е. диапазон представления чисел в этом случае 1 ≤ | A | ≤ 2 n - 1.
n | n -1 | n -2 | … | |||
± | an -1 | an -2 | … | a 1 | a 0 | , |
2 n -1 | 2 n -2 | … | 21 | 20 |
В случае правильных дробей минимальным по модулю отличным от нуля числом будет А min=,00…01 = 2- n, а максимальным – А max =,11…11 = 1 - 2- n, т. е. диапазон представления чисел в этом случае 2- n ≤ | A | ≤ 1 - 2- n.
n | n -1 | n -2 | … | |||
± | a -1 | a -2 | … | a -(n -1) | a - n | |
, | 2-1 | 2-2 | … | 2-( n -1) | 2- n |
Достоинство фиксированной запятой: имеется возможность построитьсравнительно несложные арифметические устройства с высоким быстродействием.
2. Представление чисел с плавающей запятой
Для расширения диапазона представления чисел и уменьшения погрешности их задания используется нормальная форма записи.
В общем случае нормальная форма записи числа может быть представлена в виде, где M – мантисса числа; r – основание системы счисления; p – порядок числа. Мантисса | М | < 1, т.е. является правильной дробью, а порядок р – целое число.
Порядок (с учетом знака) показывает, на сколько разрядов и в какую сторону сдвинута запятая при замене формы записи числа с естественной на нормальную. Положение запятой в мантиссе M определяется величиной порядка p. С изменением порядка в большую или меньшую сторону запятая перемещается влево или вправо, т. е. «плавает» в изображении числа. Поэтому такую форму записи называют представлением чисел с плавающей запятой.
Формат числа с плавающей запятой включает: один разряд для представления знака порядка, q разрядов для представления порядка р, один разряд для представления знака мантиссы, т разрядов для представления мантиссы М.
n | n -1 | n -2 | … | m +2 | m +1 | m | m -1 | m -2 | … | |||
± | 2 q -1 | 2 q -2 | … | 21 | 20 | ± | 2-1 | 2-2 | … | 2-( m -1) | 2- m | |
знак порядка | порядок p q разрядов | знак мантиссы | , | мантисса M m разрядов |
В условиях ограничения разрядной сетки максимально возможную точность представления чисел имеет нормальная форма записи числа, при которой старшая цифра мантиссы является значащей, т.е. 1/ r ≤ | M | < 1. Такие числа называются нормализованными. Для двоичной системы счисления r = 2 и 0,5 ≤ | M | < 1, т.е. старший разряд мантиссы должен быть равен единице. Например: 0,10101100·2011 – нормализованное число, а 0,00101011·2101 – ненормализованное. Нормализованное представление чисел с плавающей запятой позволяет сохранить в мантиссе большее число разрядов с единицами, что повышает точность вычислений.
При выполнении действий над числами с плавающей запятой определенные операции выполняются как над мантиссами, так и над порядками. Для упрощения операций над порядками их сводят к действиям над целыми положительными числами (числами без знака), применяя представление чисел с плавающей запятой со смещенным порядком. В случае представления числа с плавающей запятой со смещенным порядком к его порядку p прибавляется целое число – смещение 2 q, где q – число двоичных разрядов, используемых для представления модуля порядка, p см = p + 2 q. Смещенный порядок будет всегда положительным. Для его представления необходимо такое же число разрядов, как и для модуля и знака порядка – q +1 разрядов. Важная особенность смещенных порядков состоит в том, что если для порядков p 1 и p 2, представляющих собой целые числа со знаками, выполняется соотношение p 1 > p 2, то и для положительных целых чисел, соответствующих смещенных порядков p см1 и p см2, также будет выполняться соотношение p см1 > p см2.
Для устранения неоднозначности смещенные порядки называют характеристиками.
Наименьшее по модулю число с плавающей запятой с ненулевой нормализованной мантиссой может быть представлено единицей в старшем разряде с весом 2-1 и наибольшим по абсолютной величине отрицательным порядком:
,
а наибольшее по модулю число с плавающей запятой
.
Сравним диапазон представления чисел с фиксированной и плавающей запятой. Пусть, например, n = 31 (разрядная сетка состоит из 32 разрядов). В этом случае максимальное целое число с фиксированной запятой по абсолютному значению равно 231 - 1=2 147 483 647.
Для числа с плавающей запятой (n = 31, m = 24, q = 6 и два разряда используются для кодирования знаков мантиссы и порядка) максимальное значение числа равно (1 – 2-24) 264 – 1 ≈ 1× 263 ≈ 1019.
Из сравнения этих двух значений вытекает, что при одинаковом числе разрядов n форма с плавающей запятой обеспечивает более широкий диапазон представления чисел.
В то же время операции над числами с фиксированной запятой выполняются быстрее, чем операции над числами с плавающей запятой. Поэтому выбор той или иной формы представления чисел часто диктуется классом задач, временем, необходимым для их решения, точностью вычислений, диапазоном изменения исходных данных и результата.
3. Погрешности представления чисел
Представление числовой информации в ЭВС, как правило, влечет за собой появление погрешностей (ошибок), величина которых зависит от формы представления чисел и от длины разрядной сетки.
Абсолютная погрешность представления – разность между истинным значением исходной величины А и ее значением, полученным из машинного изображения АМ, т.е..
Относительная погрешность представления – величина.
Все числа целого типа переводятся из одной системы счисления в другую точно (без погрешностей). Операции сложения, вычитания и умножения чисел целого типа также выполняются точно. Результат деления чисел целого типа дает целое частное и целый остаток.
Правильные дроби переводятся из одной системы счисления в другую не точно – с погрешностью. Некоторая величина в одной системе счисления может иметь конечное значение, а в другой системе счисления становится бесконечной величиной, например, дробь 1/10 имеет конечное десятичное представление, но, будучи переведена в двоичную систему счисления, становится бесконечной дробью 0,0001100110011... Однако эту погрешность нетрудно оценить, если известны истинные значения исходных чисел.
Поэтому для чисел с фиксированной запятой погрешность представления имеет место только в случае правильных дробей.
Абсолютная погрешность перевода десятичной дроби в систему с основанием r при использовании усечения (младшие цифры справа отбрасываются) определяется следующим выражением
.
Для двоичной системы счисления r = 2, и максимальное значение этой погрешности получается при ai = 1
,
т.е. максимальная абсолютная ошибка равна значению младшего разряда.
При использовании округления максимальная абсолютная ошибка не превышает половины значения младшего разряда
.
Для представления чисел в форме с фиксированной запятой абсолютное значение машинного изображения правильной дроби находится в диапазоне
2- n ≤ | A | Ф ≤ 1 - 2- n.
Следовательно, относительная погрешность представления для максимального значения числа равна
.
В современных ЭВС, как правило, n = 16…64, поэтому, откуда
.
Аналогично, для минимального значения:
,
откуда видно, что погрешности представления малых чисел в форме с фиксированной запятой могут быть очень значительными.
Все числа с плавающей запятой представляют некоторые данные приближенно.
Для представления чисел в форме с плавающей запятой абсолютное значение мантиссы находится в диапазоне
0,5 ≤ | M | < 1 - 2- n,
поэтому ее погрешности определяются так же, как и для чисел с фиксированной запятой.
Для нахождения погрешностей представления чисел в форме с плавающей запятой величину этой погрешности надо умножить на величину:
,
,
.
Из полученных выражений следует, что максимальная абсолютная ошибка не превышает половины значения младшего разряда мантиссы с учетом порядка, а относительная точность представления чисел в форме с плавающей запятой почти не зависит от величины числа.
4. Кодирование двоичных чисел со знаком
Для машинного представления чисел со знаком используются три способа: прямой, дополнительный и обратный коды. При рассмотрении кодов будем считать, что разрядная сетка содержит n +1 двоичных разрядов, из которых n младших разрядов используются для задания значения числа. При изображении целых чисел точкой условно отделяют знаковый разряд от числовой части.