Кодирование целых чисел, имеющих символ, можно выполнить 2-мя методами. В первом варианте один (старший) разряд машинном слове отводится для записи знака числа; при всем этом договорились кодировать символ «+» нулем, символ «-» — единицей. Под запись самого числа, разумеется, остается 15 двоичных разрядов, что обеспечивает наибольшее значение числа Zmax = 215 — 1 = 3276710. Такое представление чисел именуется прямым кодом. Но его применение усложняет порядок обработки чисел; к примеру, операция сложения 2-ух чисел с различными знаками должна быть заменена операцией вычитания наименьшего из большего с следующим присвоением результату знака большего по модулю числа. Другими словами, операция сопровождается огромным количеством проверок критерий и выработкой признаков, в согласовании с которыми выбирается то либо другое действие.
Другим вариантом является представление чисел со знаком в дополнительном коде. Мысль построения дополнительного кода довольно ординарна: на оси целых положительных чисел, помещающихся в машинное слово (0 ÷ 65535), сместим положение «О» на середину интервала; числа, попадающие в первую половину (0 ÷ 32767) будем считать положительными, а числа из 2-ой половины (32768 ÷ 65535) — отрицательными. В данном случае судить о знаке числа можно будет по его величине и в очевидном виде выделение знака не будет нужно. К примеру, 1000000000000012 = 3276910 является кодом отрицательного числа, а 0000000000000012 = 110 — кодом положительного. Принадлежность к интервалу кодов положительных либо отрицательных чисел видна по состоянию старшего бита — у кодов положительных чисел его значение «0», отрицательных — «1». Это припоминает представление со знаком, но не является таким, так как употребляется другой принцип кодировки. Его применение позволяет поменять вычитание чисел их суммированием в дополнительном коде. Убедимся в этом чуток позже после того, как обсудим метод построения дополнительного кода целых чисел.
Дополнением (D) k-разрядного целого числа Z в системе счисления р именуется величина D(ZP, k) = pk — Z. Данную формулу можно представить в ином виде: D(ZP, k) = ((pk — 1) — Z) + 1. Число pk — 1 согласно (4.8), состоит из k больших в данной системе счисления цифр (р — 1), к примеру, 999910, FFF16 либо 11111112. Потому (pk — 1) — Z можно получить методом дополнения до р-1 каждой числа числа Z и следующим прибавлением к последнему уровню 1.