Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.doc
Скачиваний:
6
Добавлен:
04.08.2019
Размер:
797.7 Кб
Скачать

Машинные коды

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

Замена вычитания на сложение может проводиться с помощью дополнительного и обратного кода. Их суть состоит в том, что отрицательное слагаемое представл. в виде дополнения до некоторой константы K, такой, что K-B>0. Обратный и дополнительный коды отличаются выбором этой константы.

, где 10 – основание системы счисления, – const при введении дополнительного, ( -1) – const обратного кода, n – количество разрядов представл. целых чисел в данной системе счисления.

Из полученной суммы необходимо изъять добавленную константу.

Пример. 59|2 1

|2 1

|2 0

|2 1

|2 1

- +

+1

Пк

Дк

С=59-34

59

+66

-100=25

59

+65

-100=24

+1

В случае дополнительного кода его константа компенсируется ликвидацией ед. переноса из старшего разряда. А в случае обратного кода – ликвидацией единицы и прибавления её к результату, то есть на одну операцию больше. Поэтому для реального вычитания используется дополнительный код, а обратный используется для получения дополнительного.

-

-

С=А-В

00111011

+11011110

00100010

+11000101

100000000

-11100111

– модуль результата

При сложении чисел с разными знаками единица переноса из старшего разряда является признаком положительного результата, отсутствие переноса – признаком отрицательного результата. При этом код результата находится в дополнительном коде. Чтобы получить его модуль, необходимо скомпенсировать константу дополнительного кода.

00111011

+00100010

*) – отсутствует

11000101 100000000

+11011110 -10100011

При сложении чисел с одинаковыми знаками признаки противоположны. При сложении положительных чисел признаком положительного результата является отсутствие переноса из старшего разряда, признаком отрицательного результата – его наличие. Эти же признаки говорят об отсутствии переполнения разрядной сетки.

200|2 0

|2 0

|2 0

|2 1

|2 0

|2 0

|2 1

1

11001000

00111011

+11001000

11000101 100000000

+00111000 -11111101

Правила построения дополнительного и обратного кода на примере чисел . Старший бит отведён под знак числа.

10

+34

00100010

00100010

00100010

-34

1.0100010

11111111

-00100010

100000000

-00100010

  1. Прямой код положительного и отрицательного числа отличаются только знаковыми разрядами.

  2. Прямой, дополнительный и обратный коды положительных чисел совпадают.

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

  4. Дополнительный код отрицательного числа образуется дополнением единицы к младшему разряду обратного кода или путём инверсии прямого кода, исключая последнюю единицу и следующие за ней нули.

Числа в естественной форме хранятся в ЭВМ в дополнительном коде, в нормальной форме – в прямом коде.