Изменения

Перейти к: навигация, поиск
Нет описания правки
Из-за недостатков выполнение арифметических операций над числами в прямом коде потребует сложной архитектуры центрального процессора и в общем является неэффективным.
 
== Код со сдвигом ==
 
== Дополнительный код ==
Для представления отрицательных чисел используется дополнительный код. Дополнительный код позволяет заменить арифметическую операцию вычитания операцией сложения, что существенно упрощает работу процессора и увеличивает его быстродействие.
 
Дополнительный код отрицательного числа А, хранящегося в n ячейках, равен 2n - |A|.
 
Дополнительный код представляет собой дополнение модуля отрицательного числа А до 0, так как в n-разрядной компьютерной арифметике:
 
2n - |А| + |А| = 0,
 
поскольку в компьютерной n-разрядной арифметике 2n = 0. Действительно, двоичная запись такого числа состоит из одной единицы и n нулей, а в n-разрядную ячейку может уместиться только n младших разрядов, то есть n нулей.
 
Для получения дополнительного кода отрицательного числа можно использовать довольно простой алгоритм:
 
1. Модуль числа записать в прямом коде в n двоичных разрядах.
 
2. Получить обратный код числа, для этого значения всех битов инвертировать (все единицы заменить на нули и все нули заменить на единицы).
 
3. К полученному обратному коду прибавить единицу.
17
правок

Навигация