Курсовая работа: Деление двоичных чисел в прямом, обратном и дополнительном кодах

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

В самом деле, если G- < 0 и Q- < 0 , то согласно (4b):


(G-) доп + (Q-) доп = G-+ 2 + G- + 2 = 2 + (G- + Q- + 2)

Так как -1 < G- + Q- < 0, то величина, стоящая в скобках, меньше двух, но больше единицы. Двойка, стоящая вне скобки, образует перенос из разряда знака, который будет отброшен. В результате получаем:

(G-) доп + (Q-) доп = (G- + Q-) + 2 = (G- + Q-) доп

G+ > 0, а Q- < 0, то

(G+) пр + (Q-) доп = (G+ + Q-) + 2

Если при этом0 < G+ + Q- < 1, то стоящая вне скобки двойка дает единицу переноса из разряда знака, которая отбрасывается. При этом получаем:

(G+) пр + (Q-) доп = (G+ + Q-) пр

(G+ + Q- > 0)

Если же -1 < G+ + Q- < 0, то (G+ + Q- ) + 2 < 2 и переноса из разряда знака не возникает. В этом случае:

(G+) пр + (Q-) доп = (G+ + Q-) доп

(G+ + Q- < 0).

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

При сложении кодов теряется единица переноса из разряда целых единиц и результат ошибочно воспринимается как положительное число, меньшее единицы.

Отметим, что при алгебраическом сложении двух чисел G и Q, каждое из которых по модулю меньше единицы, может возникнуть переполнение разрядной сетки, но при этом модуль получаемой суммы всегда меньше двух. Это обстоятельство облегчает построение кодов, по виду которых можно судить о переполнении разрядной сетки.

Для получения признака переполнения разрядной сетки применяют модифицированные прямой, дополнительный и обратный коды. Эти коды отличаются от ранее рассмотренных кодов тем, что для представления знака используются два разряда.

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

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

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

В этих случаях модуль суммы:

1 ≤ |x| < 2

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

У нормализованного положительного или отрицательного числа с мантиссой, изображаемой в прямом коде, цифра в старшем S-ичном разряде мантиссы должна быть отлична от нуля. Для отрицательных мантисс, представленных в обратном или дополнительном коде, условие нормализации |q| ≥ 1/Sвыполняется, если цифра в старшем S-ичном разряде мантиссы есть нуль.

В случае чисел с плавающей запятой комбинации 01 и 10 в знаковых разрядах мантиссы указывают на нарушение нормализации влево, а комбинации цифр 00 и 1 σs1 (σs1 ≠ 0) в младшем знаковом разряде и старшем S-ичном цифровом разряде мантиссы сигнализируют о нарушении нормализации вправо. Для восстановления нормализации производится сдвиг мантиссы вправо (или влево) на нужное число разрядов, при этом порядок увеличивается (уменьшается) на соответствующее число единиц,

Если отрицательные числа представляются в дополнительном (обратном) коде, сдвиг производится по особым правилам («модифицированный сдвиг»), с тем чтобы в результате сдвига дополнительного (обратного) кода числа х на mS-ичных разрядов получился дополнительный (обратный) код числа Smx или S-mх соответственно для сдвига влево или вправо.

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

Деление в прямом, обратном и дополнительном кодах

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

К-во Просмотров: 296
Бесплатно скачать Курсовая работа: Деление двоичных чисел в прямом, обратном и дополнительном кодах