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