Главная » Просмотр файлов » Жмакин А.П. Архитектура ЭВМ (2006)

Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 11

Файл №1186252 Жмакин А.П. Архитектура ЭВМ (2006) (Жмакин А.П. Архитектура ЭВМ (2006)) 11 страницаЖмакин А.П. Архитектура ЭВМ (2006) (1186252) страница 112020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 11)

Пусть А — делимое, В — делитель, С — частное, W — остаток.

Очевидно, при представлении чисел с фиксированной запятой как дробных, должно соблюдаться условие

|A|<|B| (3.29)

иначе С ≥ 1, что соответствует переполнению разрядной сетки.

Процесс деления двоичных чисел может быть сведен к последовательности вычитаний и анализа знаков получающихся остатков. Сформулируем словес­ный алгоритм деления следующим образом:

1. Вычетают из делимого делитель. Если знак разности 0, то деление невоз­можно в силу нарушения условия (3.29), и следует, установив OV = 1, за­вершить операцию; иначе в разряд целой части частного записывают О (в конце операции в этот разряд помещается знак частного).

2. Так как остаток (разность А-В) оказался отрицательным, восстанавли­вают остаток путем добавления делителя к остатку.

3. Сдвигают восстановленный остаток влево на один разряд.

4. Вычитают из сдвинутого остатка делитель; если полученная разность по­ложительна, то очередной цифрой частного становится 1, и следует перей­ти к п. 3; иначе очередная цифра частного — 0 и переходят к п. 2.

Пункты 2—4 повторяют столько раз, сколько цифр требуется получить в частном.

Пример 3.24

Деление дробных положительных чисел + (3/16):+(12/16) = +(1/4) = +(4/16) приведено на рис. 3.29.

3.9.1. Деление без восстановления остатка

Приведенный выше метод деления называется методом деления с восстанов­лением остатка. При получении отрицательного остатка на очередном шаге деления необходимо перед левым сдвигом восстановить остаток путем до­бавления к нему делителя. При этом для получения п -разрядного частного требуется в среднем 1,5и циклов сложения/вычитания.

Существует алгоритм деления без восстановления остатка, позволяющий корректировать отрицательные остатки без дополнительного цикла сложе­ния. Рассмотрим действия, производимые с остатками в цикле деления в за­висимости от полученного знака остатка (табл. 3.4).

Видно, что если на очередном шаге остаток получился отрицательный, его можно не восстанавливать, но на следующем шаге в этом случае нужно

вместо вычитания делителя из сдвинутого остатка добавить делитель к сдвину­тому остатку.

Действительно, если W - В < 0, то следует восстановление остатка и сдвиг восстановленного остатка влево (его удвоение) 2-(W-B + В). На сле­дующем шаге вычитаем делитель и получаем 2W-B . Тот же результат может быть получен, если сдвинуть невосстановленный остаток, но на следующем шаге вместо вычитания произвести добавление делителя: 2{W-B) + B = 2W-2B + B = 2W + B.

3.10. Арифметические операции с числами, представленными в формате с плавающей запятой

В таком формате число определяется значениями мантиссы и порядка:

N = m-qp, (3.30)

где m — мантисса числа, р — порядок, q — основание.

Мантисса и порядок могут иметь свои знаки, причем знак мантиссы соответ­ствует знаку числа. Основание q может не совпадать с основанием системы счисления. При операциях с двоичными числами часто для расширения диа­пазона представления чисел выбирают q - 2к, например, q = 16.

В машинном представлении формат числа с плавающей запятой (рис. 3.30) задается двумя полями— полем мантиссы m и полем порядка р, причем каждое поле имеет свой разряд знака. Значение порядка в формате числа не указывается — оно подразумевается одинаковым для всех чисел.

Мантисса и порядок представляются в формате с фиксированной запятой, причем обычно порядок — целое число со знаком (запятая фиксирована по­сле младшего разряда), а мантисса — правильная дробь (запятая фиксирована между знаковым разрядом и старшим разрядом модуля). С целью увеличения точности представления числа в заданном формате мантиссу представляют в нормализованной форме, когда старший разряд модуля мантиссы — не ноль (для прямых кодов). Действительно,

0,2364 104 «0,0024 106,

однако в последнем случае мантисса не нормализована и точность представ­ления числа — всего два десятичных разряда.

Существуют и другие форматы представления чисел с плавающей запятой. Так, стандарт IEEE1, который, кстати, поддерживают (со)процессоры семей­ства х86(87) предусматривает числа с одинарной и двойной точностью.

Форматы представлены тремя полями:

s —знак числа;

е —характеристика;

m —мантисса.

Формат с одинарной точностью занимает 32-разрядное двоичное слово, при­чем знак s размещается в его старшем разряде, характеристика е — в сле­дующих 8 разрядах и, наконец, 23 младших разряда занимает мантисса т .

Порядок р, под который отводится один байт, может принимать значения в диапазоне +127. Характеристика в стандарте IEEE получается как порядок с избытком 127: е = р +127 . При этом характеристика всегда положительна, что упрощает выполнение арифметических операций.

Мантисса числа в стандарте IEEE нормализована и лежит в диапазоне

1≤ т < 2. Целая часть мантиссы всегда равна 1, поэтому значение целой части не хранится в формате числа, а подразумевается (т. н. "скрытая единица"). Дробная часть мантиссы хранится в 23 младших разрядах формата.

Формат с двойной точностью отличается длиной полей характеристики (11 битов с избытком 1023) и мантиссы (52 бита) и размещается в 64-раз­рядном двоичном слове.

Попробуйте самостоятельно оценить диапазон представления чисел в форма­тах IEEE. Подробности о выполнении операций с этими форматами можно посмотреть в [3, 12].

3.10.1. Сложение и вычитание

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

Пример 3.25

Сложить два числа, представленные в формате с плавающей запятой:

Обратите внимание, мантиссы чисел нормализованы. Очевидно, прежде чем складывать мантиссы, требуется преобразовать числа таким образом, чтобы они имели одинаковые порядки. Выравнивание порядков можно выполнить двумя способами — уменьшением большего порядка до меньшего или уве­личением меньшего до большего (рис. 3.31).

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

этой разности. Если разность порядков превышает разрядность поля мантис­сы, то значение слагаемого с меньшим порядком может быть принята за 0, а результат суммирования будет равен слагаемому с большим порядком. После выравнивания порядков следует сложить мантиссы и определить в ка­честве порядка результата порядок любого из слагаемых (после выравнива­ния порядки слагаемых равны). Если при сложении мантисс возникает пере­полнение, то результат может быть исправлен путем сдвига мантиссы суммы на один разряд вправо и добавления единицы к порядку результата. Однако если в результате этого добавления произойдет переполнение раз­рядной сетки порядков, то результат окажется неверным — имеет место т. н. положительное переполнение: OV :=1 (рис. 3.32).

А = 0,96502-10+2 Л = 0,96502 -10+2

В = 0,73005 10+1 В = 0,07300 -10+2

С = 1,03802 • 10+2 — переполнение мантисс!

С = 1,0380 • 10+3 — правильный результат

Рис. 3.32. Положительное переполнение

В результате алгебраического сложения мантисс результат может оказаться ненормализованным. Для нормализации результата необходимо сдвигат мантиссу результата влево до тех нор, пока в старшем значащем разряде не окажется цифра, отличная от 0 (в двоичной системе это 1), сопровождая каж­дый сдвиг уменьшением на 1 порядка результата (рис. 3.33). Этот процесс называется нормализацией результата.

A=0,24512-10-8 В = -0,24392- 10~8

С = 0,00120 Ю-8 =0,12000 10"10

Рис. 3.33. Положительное переполнение

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

Итак, процедура алгебраического сложения чисел с плавающей запятой скла­дывается из следующих этапов:

1. Выравнивание порядков.

2. Алгебраическое сложение мантисс как чисел с фиксированной запятой.

3. Нормализация результата.

Алгоритм операции сложения с плавающей запятой представлен на рис. 3.34. Первая часть алгоритма — выравнивание порядков, представлена достаточно подробно, хотя можно предложить несколько различных способов реализа­ции этой процедуры (в зависимости от способа кодирования порядков, требо­вания к быстродействию и экономичности арифметического устройства). Ал­горитм алгебраического сложения мантисс (как чисел с фиксированной за­пятой) подробно обсуждался выше (см. разд. 3.4—3.6, рис. 3.3, 3.21, 3.22), поэтому в рассматриваемом алгоритме он представлен одним блоком. Нор­мализация результата приведена для случая представления чисел в прямом коде.

3.10.2. Умножение и деление

Положим

A=mA ∙ qpa ;

B=mb ∙ qpb

C=mc ∙ qpc

D=mD ∙ qpd

Тогда

C = AxB = (mAxmB)-qPA+PB, т. е. mc = mAxmB, pc = pA+pB.

D = A + B = (mA +mB)-qPA-PB, т. e. mD =mA + mB, pD=pA-pB.

Таким образом, умножение чисел с плавающей запятой сводится к двум опе­рациям (умножение мантисс и сложение порядков) над числами с фиксиро­ванной запятой, а деление — к делению мантисс и вычитанию порядков — также к двум операциям с фиксированной запятой, которые были подробно рассмотрены выше.

3.11. Арифметические операции над десятичными числами

3.11.1. Кодирование десятичных чисел

При использовании в ЦВМ десятичные числа кодируются группой двоичных разрядов. Учитывая, что

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее