Машинные коды чисел
Для вычислительной техники все арифметические операции с помощью специальных машинных кодов могут быть сведены к сложению и сдвигу вправо или влево. При использовании машинных кодов автоматически учитываются знаки чисел, определяется знак результата и переполнение разрядной сетки. Обычно применяются прямой, обратный и дополнительный коды.
Представление чисел в прямом коде складывается из знакового разряда и собственно числа. Например, рассмотрим несколько восьмиразрядных двоичных чисел в прямом коде и их двоичные эквиваленты:
+2910 = 001111012 2910= 101111012
+ 12710 = 011111112 12710 = 111111112
+010 = 000000002 010 = 100000002
Система представления в прямом коде содержит одинаковое количество положительных и отрицательных чисел, причем 0 может быть представлен двумя способами.
Для представления отрицательных чисел или замены операции вычитание на сложение используются обратный или дополнительный коды. Сущность этих кодов заключается в том, что вычитаемое число X, как отрицательное число, представляется в виде дополнения до некоторой константы С, такой, что С - X> 0. Обратный и дополнительные коды отличаются выбором этой константы.
Для дополнительного кода отрицательное число Z. представляем как
Z= -X = (10n - X) – 10n,
где Z< 0, X> 0, n - величина разрядной сетки, а 10n - X - дополнительный код числа.
Для обратного кода отрицательное число Z представляем как
Z = -Х = (10n-1-X) – 10n+1,
где Z<0, Х>0, n - величина разрядной сетки, а 10n -1-Х- обратный код числа.
Например, определим машинные коды чисел +31 и -31 в естественной форме Н. Отметим, что самый старший разряд - знаковый.
Для числа +31 прямой, дополнительный и обратный коды выглядят одинаково:
анп= Ан° = Анд = 0000 0000 0001 11112 .
Для числа -31 прямой код выглядит как
Анп= 100000000001 11112.
Для построения дополнительного кода берем константу
1015 = 1 000 0000 0000 0000
и получаем
АНД = 1111 1111 111000012.
При построении обратного кода константа равна
1015- 1 = 111 1111 1111 1111 и Ан° = 1111 1111 1110 00002.
Рассмотрим правила образования двоичных машинных кодов:
· положительное число в прямом, обратном и дополнительном кодах выглядит одинаково;
· прямой код отрицательных и положительных чисел имеет различное значение только в знаковом разряде, модуль числа не изменяется;
· обратный код отрицательного числа получается из прямого кода путем замены единиц на нули и нулей на единицы, исключая знаковый разряд;
· дополнительный код получается из обратного прибавлением единицы к младшему разряду (перенос в знаковый разряд при этом теряется);
· дополнительный код отрицательного числа может быть получен из прямого кода заменой всех единиц на нули и всех нулей на единицы, исключая самую младшую единицу и следующие за ней нули.
Обычно в компьютере числа, представленные в естественной форме, хранятся в дополнительном коде, а числа, представленные в нормальной форме, хранятся в прямом коде. Обратный код используется как промежyточное звено для получения дополнительного кода.
Дата добавления: 2016-05-31; просмотров: 4730;