Системы счисления

CELLSPACING=0>







Знак Модуль мантиссы Знак Модуль порядка

числа порядка


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

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

Нормализованные двоичные числа с плавающей запятой представляют значения модуля в диапазоне

где - максимальное значение модуля порядка.

Так, при 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. В случае надобности мантисса суммы переводится в прямой код, производится нормализация суммы и округление ее мантиссы.

ПРИМЕР. Используя дополнительный код, сложить два числа:

[X1]пр = 0 101; 1,10101 и [X2]пр = 0 100 ; 1,11001

порядок мантисса

РЕШЕНИЕ:

  1. [X2]пр = 0 101; 1,011001

  2. [m1]мод = 11,01011; [m1]мод = 11,100111.

доп доп

  1. [m1]мод = 11,01011

  • доп

[m2]мод = 11,01011

доп


[m3]мод = 110, 111101

доп


отбрасывается запрещенная комбинация

4. Комбинация знаковых цифр мантиссы показывает, что сумма денормализована влево (всегда только на один разряд)

Произведем нормализацию суммы вправо


[m3]мод = 10, 111101 1,0111101

доп

Робщ = 0,101 + 0,001 = 0,110

Далее переводим сумму в прямой код и производим округление ее мантиссы до пяти разрядов.

Ответ: [X3]пр = 0 110 ; 1,1000011 ~ 0 100; 1, 10001

порядок мантисса

Умножение чисел с фиксированной запятой


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

1. Определяется знак произведения с помощью сложения знаковых цифр сомножителей по модулю два, где нуль соответствует плюсу, а единица - минусу:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0

Вручную это эквивалентно:

(+) (+) = (+); (+) (-) = (-); (-) (+) = (-); (-) (-) = (+).

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

Умножение производится по обычным правилам арифметики согласно двоичной таблицы умножения. Произведение модулей |Х3| = |Х1| * |Х2| двух (например дробных) чисел, где множитель Х2 = Х21 2-1 + Х22 2-2 +…+ Х2n 2-n, чаще всего вычисляется как сумма так называемых частичных произведений:

n

3/ = /Х/ Х2i 2-i

i=1

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

ПРИМЕР. Перемножить числа [X1]пр = 0,1010 и [X2]пр = 1,1101

Решение.

1. Определяем знак произведения 0 + 1 = 1.

2. Перемножим модули операндов, порядок перемножения определяется нумерацией цифр множителя:


1-й способ

0,1010 0,1010

х 0,1101 х 0,1101

4,3,2,1 номера цифр множителя 1,2,3,4

1010 1010

0000 1010

+1010 + 0000

1010 1010

0,10000010 0,10000010

После округления приписываем к модулю знак произведения, полученный на первом этапе умножения.

Ответ: [X3]пр = 1,0000010 ~

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: