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

Дополнительный код

Для получения дополнительного кода отрицательного числа можно использовать следющий алгоритм:

1. Модуль числа записать прямым кодом в n двоичных разрядах;

2. Получить обратный код числа; для этого значения всех бит инвертировать (все единицы заменить на нули и все нули заменить на единицы);

3. К полученному обратному коду прибавить единицу.

Пример 2.3. Записать дополнительный код отрицательного числа –2002 для 16-ти разрядного компьютерного представления.

Прямой код |-200210| 1 0000111110100102
Обратный код инвертирование 1 1111000001011012
  прибавление единицы 1 1111000001011012 + 00000000000000012
Дополнительный код   1 1111000001011102

Пример 2.4. Выполнить арифметическое действие в машинном коде.

Решение. Представим положительное число в прямом, а отрицательное число в дополнительном коде:

Десятичное число Прямой код Обратный код Дополнительный код
  0 000101110111000    
-5000 1 001001110001000 1 110110001110111 1 110110001110111 + 000000000000001 1 110110001111000
  Сложим прямой код положительного числа с дополнительным кодом отрицательного числа. Получим результат в дополнительном коде:
3000-5000     0 000101110111000 + 1 110110001111000 1 111100000110000
           

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

1. Инвертируем дополнительный код: 0000011111001111;

2. Прибавим к полученному коду 1 и получим модуль отрицательного числа:

+ 0000000000000001

3. Переведем в десятичное число и припишем знак отрицательного числа: -2000.

Положительные числа в дополнительном коде записываются так же, как и в прямом. Нуль в дополнительном коде имеет единственное представление:

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: