йСПЯНБЮЪ, ЙНМРПНКЭМЮЪ ПЮАНРЮ. оПХЛЕПШ БШОНКМЕМХЪ

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

При выполнении арифметических действий результат может оказаться не только положительным, но и отрицательным числом. Как представить знак "-" в схемах машины, если в них фиксируется лишь два состояния -- 0 или 1? Договорились знак числа определять самым левым, старшим битом. Если число положительное, то знаковый разряд равен 0, а если отрицательное, то 1. Решение о выделении знакового разряда, конечно, сказалось на максимальных величинах представляемых чисел. Если для хранения числа отводится два байта (16 разрядов), то разместить там можно только числа от -32768 до +32767. Следует отметить, что даже если под хранение чисел отводить не два, а более байтов, то и тогда невозможно оперировать всем множеством целых чисел; всегда существует конечный диапазон представимых в ЭВМ чисел.

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

ЧислоПрямой кодОбратный кодДополнительный код
-3101111001101
-2101011011110
-1100111101111
00000
10001
20010
30011

Если двигаться вниз по столбцам приведенной таблицы, то в дополнительном коде каждое последующее число получается прибавлением единицы к предыдущему. Важно, что это свойство не нарушается и при переходе к неотрицательным числам, если не учитывать перенос за пределы четвертого разряда. Эта особенность дополнительного кода и явилась причиной его применения в миникомпьютерах и микрокомпьютерах, а также во многих больших ЭВМ.

 

7271f726
сВЕАМХЙ ОН ЙСПЯС "хМТНПЛЮРХЙЮ Х ХМТНПЛЮЖХНММШЕ РЕУМНКНЦХХ"