Слайд 2Прямой код
Прямой код двоичного числа образуется из абсолютного значения этого числа и
кода знака (0 или 1) перед его старшим числовым разрядом.
Пример.
А10 = +10; А2 = +1010; [А2]п = 0|1010
В10 = –15; В2 = –1111; [В2]п = 1|1111
Слайд 3Обратный код
Обратный код двоичного числа образуется по следующему правилу. Обратный код положительных
чисел совпадает с их прямым кодом. Обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются на инверсные, т.е. нули заменяются единицами, а единицы нулями.
Пример.
А10 = +10; А2 = +1010; [А2]ок = [А2]п = 0|1010
В10 = –15; В2 = –1111; [В2]ок = 1|0000
Слайд 4Свое название обратный код получил потому, что коды цифр отрицательного числа заменены
на инверсные. Наиболее важные свойства обратного кода чисел:
сложение положительного числа С с его отрицательным значением в обратном коде дает т.н. машинную единицу МЕок=1|11…11, состоящую из единиц в знаковом и в значащих разрядах числа;
нуль в обратном коде имеет двоякое значение. Он может быть как положительным числом – 0|00…00, так и отрицательным 1|11…11. Значение отрицательного числа совпадает с МЕок. Двойственное представление 0 явилось причиной того, что в современных ЭВМ все числа представляются не обратным, а дополнительным кодом.
Слайд 5Дополнительный код
Дополнительный код положительных чисел совпадает с их прямым кодом. Дополнительный код
отрицательного числа представляет собой результат суммирования обратного кода числа с единицей младшего разряда (20 – для целых чисел, 2-л – для дробных)
Пример.
А10 = +10; А2 = +1010; [А2]дк = [А2]ок = [А2]п = 0|1010
В10 = –15; В2 = –1111; [В2]дк = [В2]ок + 20 = 1|0000+1 = 1|0001
Слайд 6Основные свойства дополнительного кода:
• сложение дополнительных кодов положительного числа С с его
отрицательным значением дает т.н. машинную единицу дополнительного кода:
МЕдк=МЕок + 20 = 10|00…00,
т.е. число 10 (два) в знаковых разрядах числа;
• дополнительный код называется так потому, что представление отрицательных чисел является дополнением прямого кода чисел до машинной единицы
МЕдк.
Слайд 7Модифицированные обратные и дополнительные коды
Модифицированные обратные и дополнительные коды двоичных чисел отличаются
соответственно от обратных и дополнительных кодов удвоением значений знаковых разрядов. Знак «+» в этих кодах кодируется двумя нулевыми знаковыми разрядами, а знак «–» – двумя единичными разрядами.
Пример.
А10 = +10; А2 = +1010; [А2]дк = [А2]ок = [А2]п = 0|1010
[А2]мок = [А2]мдк = 00|1010
В10 = –15; В2 = –1111; [В2]дк= [В2]ок+20 = 1|0000+1 = 1|0001
[В2]мок= [В2]мдк= 11:0001
Слайд 8Целью введения модифицированных кодов являются фиксация и обнаружение случаев получения неправильного результата,
когда значение результата превышает максимально возможный результат в отведенной разрядной сетке машины. В этом случае перенос из значащего разряда может исказить значение младшего знакового разряда. Значение знаковых разрядов «01» свидетельствует о положительном переполнении разрядной сетки, а «10» - об отрицательном переполнении. В настоящее время практически во всех компьютерах роль сдвоенных разрядов для фиксации переполнения разрядной сетки играют переносы, идущие в знаковый и из знакового разряда.
Слайд 9Арифметические действия в машинных кодах.
Сложение (вычитание). Операция вычитания приводится к операции сложения
путем преобразования чисел в обратный или дополнительный код согласно таблице.
Слайд 11Здесь А и В неотрицательные числа. Скобки в представленных выражениях указывают на
замену операции вычитания операцией сложения с обратным или дополнительным кодом соответствующего числа. Сложение двоичных чисел осуществляется последовательно, поразрядно в соответствии с таблицей. При выполнении сложения цифр необходимо соблюдать следующие правила:
Слайд 12
1. Слагаемые должны иметь одинаковое число разрядов. Для выравнивания разрядной сетки слагаемых
можно дописывать незначащие нули слева к целой части числа и незначащие нули справа к дробной части числа.
Знаковые разряды участвуют в сложении так же, как и значащие.
2. Необходимые преобразования кодов производятся с изменением знаков чисел. Приписанные незначащие нули изменяют свое значение при преобразованиях по общему правилу.
3. При преобразовании единицы переноса из старшего знакового разряда, в случае использования ОК, эта единица складывается с младшим числовым разрядом.
4. При использовании ДК единица переноса теряется. Знак результата формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые.
Слайд 13Пример 1. Сложить два числа: А10 = 7, В10 = 16.
А2 =
+111 = +0111; В2 = +10000.
Исходные числа имеют различную разрядность, необходимо провести выравнивание разрядной сетки:
[A2]п = [A2]ок = [A2]дк = 0|00111; [В2]п = [В2]ок = [В2]дк = 0|10000.
Сложение в обратном или дополнительном коде дает один и тот же результат:
0|00111
+0|10000
----------
С2 = 0|10111
С10 = +23
Слайд 14Пример 2. Сложить два числа: А10 = +16, В10 = -7 в
ОК и ДК.
По таблице необходимо преобразование А+(-В), в которой второй член преобразуется с учетом знака
[A2]п = [A2]ок = [A2]дк = 0|10000;
[В2]п = 1|111 = 1|00111; [В2]ок = 1|11000; [В2]дк = 1|11001
Слайд 15При сложении чисел в ОК и ДК были получены переносы в знаковый
разряд и из знакового разряда. В случае ОК перенос из знакового разряда требует дополнительного прибавления единицы младшего разряда (п.4 правил). В случае ДК этот перенос игнорируется.