- •1. Предварительные замечания
- •3. Сложение чисел в простых кодах
- •3.1.1. Сложение дробных и целых положительных чисел без переполнения. (Случай 1)
- •3.1.2. Сложение дробных и целых положительных чисел с переполнением (Случай 2)
- •3.1.3. Сложение дробных и целых отрицательных чисел без переполнения (Случай 3)
- •3.1.4. Сложение дробных и целых отрицательных чисел с переполнением (Случай 4)
- •3.1.5. Сложение отрицательных чисел с “особым случаем переполнения”(Случай 5)
- •3.6.Сложение чисел разных знаков
- •3.1.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6, 9)
- •3.1.6.3. Модуль положительного операнда меньше модуля отрицательного (Случаи 7,8).
- •3.4 Обнаружение переполнения разрядной сетки в пдк
- •3.2.1. Сложение в обратных кодах дробных и целых отрицательных чисел без переполнения (Случай 3ок)
- •3.1.4. Сложение в обратных кодах дробных и целых отрицательных чисел с переполнением (Случай 4ок)
- •3.1.5. Сложение в обратных кодах отрицательных чисел с “особым случаем переполнением ” при сложении в дополнительных кодах (Случай 5)
- •3.6.Сложение в обратных кодах чисел разных знаков
- •3.1.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6, 9)
- •3.4 Обнаружение переполнения разрядной сетки в пок
- •4. Cложение чисел в модифицированных дополнительных кодах (мдк)
- •3.2.1. Сложение дробных и целых положительных чисел без переполнения. (Случай 1)
- •3.2.2. Сложение дробных и целых положительных чисел с переполнением (Случай 2)
- •3.2.3. Сложение дробных и целых отрицательных чисел без переполнения (Случай 3)
- •3.2.4. Сложение дробных и целых отрицательных чисел с переполнением (Случай 4)
- •3.2.5. Сложение целых отрицательных чисел с “особым случаем переполнения”(Случай 5)
- •3.2.6.Сложение чисел разного знака в модифицированных дополнительных кодах
- •3.2.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6,9)
- •3.2.6.3. Модуль положительного операнда меньше модуля отрицательного (Случаи 7,8).
- •4. Обнаружение переполнения разрядной сетки в модифицированных дополнительных кодах
- •1. Предварительные замечания..…………………………………………..1
3.1.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6, 9)
Пусть, А,В – операнды, отвечающие соотношениям
для случая 6: А 0 и В0. Кроме того, | А || В |.
для случая 9: A 0 и B0 Кроме того, | А | | В |
Выполняемое сложение при этих условиях эквивалентно соответственно вычитаниям (А– В) и (В–А). Разность, априори, положительна. Отрицательный операнд складывается в обратном коде.
В обоих случаях должен возникать подсуммируемый в младший разряд суммы перенос.
Как для дробных, так и для целых чисел в результате сложения в обеих рассматриваемых случаях должен формироваться прямой код положительной разности.
Пример 4–ОК. Сложение дробных и целых чисел разного знака. Модуль положительного операнда больше модуля отрицательного (Случаи 6,9) |
|||
Выполнить сложение в обратном коде пар дробных и целых отрицательных операндов соответственно А,В и X,Y. |
|||
|
Дробные слагаемые равны |
Целые слагаемые равны |
|
А=0,510= 0,1000002; В= –0,062510 = –0,00010002; |
X=–1910 = –0 00100112; Y= 5110 = 0 01100112; |
||
|
|
||
Предварительные выводы. Предварительное сложение приводит к результатам A+B=0, 510 –0,062510=0,4375 10=0,01110002; X+Y= –1910+5110= 3210.= 0 01000002. Должны быть получены положительные суммы, представленные в прямом коде. |
|||
Кроме того, следует ожидать переносы из знаковых разрядов дробных и целых сумм. |
|||
Решение. Отрицательные операнды преобразуются в обратный код.
|
|||
|
Обратный код дробного слагаемого В равен |
Обратный код целого слагаемого X равен |
|
|
[В]обр=1.11101112 |
[X]обр=1 11011002 |
|
Сложение в двоичных обратных кодах имеет вид: |
|||
|
|
|
|
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
П олучены правильные результаты, что подтверждает теоретические выводы.
|
3.4 Обнаружение переполнения разрядной сетки в пок
На рисунке 3 представлен алгоритм обнаружения переполнения путем сравнения знаков. Алгоритм аналогичен по логической структуре с рассмотренным ранее алгоритмом обнаружения переполнения для дополнительных кодов. Отличие состоит в отсутствии проверки на особый случай переполнения разрядной сетки, что является преимуществом обратных кодов.
4. Cложение чисел в модифицированных дополнительных кодах (мдк)
Модифицированные коды упрощают процедуру обнаружения переполнения.
В модифицированных кодах для кодирования знака используются не один, как в простых кодах а два разряда S0, S1. т.е. для представления слагаемого вводится дополнительный разряд. (Рис.5)
Комбинация значений “00” используется как код знака “+”, а комбинация “11” как код знака “–”. В модифицированном коде может быть представлен как прямой, так и обратный и дополнительный коды (Рис.6).
Процедура 3. Основные правила сложения в модифицированных дополнительных кодах:
положительные операнды участвуют в сложении в прямых модифицированных кодах;
отрицательные операнды должны быть преобразованы в дополнительные модифицированные коды и, в таком виде – суммироваться;
знаковые разряды слагаемых участвуют в операции наравне с числовыми разрядами;
перенос из старшего знакового разряда, который может возникнуть при сложении, должен быть игнорирован (отброшен),
если сумма – положительное число, то результат суммирования содержит нули в знаковых разрядах. Сумма в этом случае сформирована в прямом коде. Напротив, если сумма – отрицательна, то результат суммирования содержит единицы в знаковых разрядах, а сумма представлена в дополнительном коде;
при суммировании операндов одного знака возможно отрицательное или положительное переполнение. Признаком положительного переполнения является комбинация 01 значений в знаковых разрядах суммы. Признаком отрицательного переполнения является комбинация 10 в знаковых разрядах суммы
кроме того, при использовании дополнительных кодов возможен случай т.н. особого переполнения (особый случай переполнения).
Далее проводится анализ различных случаев сложения в дополнительных модифицированных кодах чисел, представленных в формате ФЗ.
На результаты сложения влияют
знаки слагаемых;
соотношения величин модулей слагаемых.
П ри сложении возможно переполнение результата. Поэтому необходимо определять признаки таких ситуаций.
Знаки слагаемых |
Знак/код знака |
Соотношение величин модулей слагаемых |
Возможность переполнения |
Случай |
Код знака суммы, как признак наличия/отсутствия переполнения |
Условия наличия/отсутствия переполнения |
|
A |
B |
||||||
Одинаковые
|
+/00 |
+/00 |
несущественно |
возможно положительное переполнение |
1, переполнения нет
|
переполнения нет, если “00” |
(A+B)<1 –для дроби (A+B)<2n-1 –для целого |
2, переполнение |
положительное переполнение, если “01“
|
(A+B) 1 – для дроби (A+B)2n- – для целого |
|||||
–/11 |
–/11 |
несущественно |
возможно отрицательное переполнение |
3, переполнения нет
|
переполнения нет, если “11” |
|A|+|B|<1 – для дроби |A|+|B|<2n-1 – для целого |
|
4, переполнение |
отрицательное переполнение, если “10“
|
|A|+|B|1 –для дроби |A|+B|2n-1 – для целого |
|||||
–/11 |
–/11 |
существенно |
особый случай переполнения |
5, особый случай переполнения |
переполнение, если “11 “ и модуль суммы равен нулю |
|A|+|B|=1 –для дроби |A|+|B|=2n-1 – для целого |
|
Разные |
+/00 |
–/11 |
|A| >|B| |
переполнение невозможно |
6 |
“00“ |
переполнение невозможно |
+/00 |
–/11 |
|A| <|B| |
7 |
“11“ |
|||
–/11 |
+/00 |
|A| >|B| |
8 |
“11“ |
|||
–/11 |
+/00 |
|A| <|B| |
9 |
“00“ |
Таблица 2 – Случаи сложения дробных и целых чисел в модифицированных ДК