Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции / Лекция 11 по ИТ_Сложение чисел с разными знаками в мод кодах МПК МОК и МДК_2022

.pdf
Скачиваний:
56
Добавлен:
08.12.2022
Размер:
417.74 Кб
Скачать

Курс лекций по дисциплине «Информационные технологии» для студентов очной формы обучения

Блок 2: «Аппаратная реализация арифметических операций над числами,

Лекция № 11 представленными в машинных кодах» Тема 2.6: «Сложение на двоичном сумматоре чисел с разными знаками в

модифицированных машинных кодах в форме с плавающей запятой»

 

Курс – 34 акад. часа Версия 2022 г

Кафедра вычислительной техники

Лист 1/4

 

 

 

 

11.Модифицированные коды

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

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

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

разряде. Для положительного числа это будет код 01 в знаковом разряде, а

для отрицательного числа код 10 в знаковом разряде. Отсюда можно заключить что знак определяется по старшему знаковому разряду.

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

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

Курс лекций по дисциплине «Информационные технологии» для студентов очной формы обучения

Блок 2: «Аппаратная реализация арифметических операций над числами,

Лекция № 11 представленными в машинных кодах» Тема 2.6: «Сложение на двоичном сумматоре чисел с разными знаками в

модифицированных машинных кодах в форме с плавающей запятой»

 

Курс – 34 акад. часа Версия 2022 г

Кафедра вычислительной техники

Лист 2/4

 

 

 

 

порядка на единицу, что соответствует умножению числа на 2 (в двоичной системе).

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

Существует и другой вариант денормализации мантиссы числа с плавающей точкой, так называемая денормализация справа. Это означает,

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

И, как нетрудно догадаться, реально в ЭВМ используется модифицированный дополнительный код (т.е. с двойным знаковым разрядом).

Пример: для целых чисел с фиксированной запятой, представленных в модифицированном коде:

Код знака числа

 

Код числа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С = А+В

С= ?

МПК С: ?

 

 

 

 

 

 

 

1) А=1010

В= – 610

С=410

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

МПК В

1

1

 

0

1

1

0

 

 

 

 

 

 

 

 

 

 

 

 

МОК В

1

1

 

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

+1

0

0

 

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

МДК В

1

1

 

1

0

1

0

 

 

 

 

 

 

 

 

 

 

Курс лекций по дисциплине «Информационные технологии» для студентов очной формы обучения

Блок 2: «Аппаратная реализация арифметических операций над числами,

Лекция № 11 представленными в машинных кодах» Тема 2.6: «Сложение на двоичном сумматоре чисел с разными знаками в

модифицированных машинных кодах в форме с плавающей запятой»

 

Курс – 34 акад. часа Версия 2022 г

Кафедра вычислительной техники

Лист 3/4

 

 

 

 

 

МПК А = МОК А = МДК А

0

 

0

 

1

0

1

0

 

 

 

 

 

 

 

 

 

 

 

МДК В

1

 

1

 

1

0

1

0

 

 

 

 

 

 

 

 

 

 

 

МПК С = МОК С = МДК С

0

 

0

 

0

1

0

0

 

 

 

 

 

 

 

 

 

 

С=410

410= 410 Ответ: ПК С: 00 0100

 

 

 

 

 

 

1) А= –1010 В= – 710 С= –1710

МПК А

1

1

 

 

 

 

МОК А

1

1

 

 

 

 

+1

 

0

0

 

 

 

 

МДК А

1

1

 

 

 

 

 

 

 

 

МПК В

1

1

 

 

 

 

МОК В

1

1

 

 

 

 

+1

 

0

0

 

 

 

 

МДК В

1

1

 

 

 

 

 

 

 

МДК А

1

1

 

 

 

МДК В

1

1

 

 

 

МДК С

1

0

 

 

 

МОК С

1

0

 

 

 

 

+1

 

0

0

 

 

 

МПК С

1

0

 

 

 

 

 

1

0

1

0

 

 

 

 

 

 

0

1

0

1

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

0

1

1

0

 

 

 

 

 

 

 

 

 

 

 

0

1

1

1

 

 

 

 

 

 

1

0

0

0

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

 

 

 

 

 

 

1

0

0

1

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

0

0

0

0

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

С= –110 –110≠ – 1710

Ответ: переполнение разрядной сетки, фатальная ошибка в данном случае.

Курс лекций по дисциплине «Информационные технологии» для студентов очной формы обучения

Блок 2: «Аппаратная реализация арифметических операций над числами,

Лекция № 11 представленными в машинных кодах» Тема 2.6: «Сложение на двоичном сумматоре чисел с разными знаками в

модифицированных машинных кодах в форме с плавающей запятой»

 

Курс – 34 акад. часа Версия 2022 г

Кафедра вычислительной техники

Лист 4/4

 

 

 

 

При сложении чисел в доп. модифицированном коде перенос из «старшего» знакового разряда не учитывается (отбрасывается).

Для целых чисел понятия денормализации нет.

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

Проблему в данном случае может решить только использование чисел с плавающей запятой.