Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка1.DOC
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.27 Mб
Скачать

«Операции сложения и вычитания над числами в дополнительном коде» теоретическая часть

Выполнение операции рассмотрим на примерах. Если результат операции должен быть положительным, получается код положительного числа в дополнительном коде, а если отрицательным – код отрицательного числа. При выполнении операции могут возникать переносы в старший разряд и переполнение разрядной сетки. При переносе старший (самый левый бит) игнорируется. При переполнении необходимо представить оба слагаемых в расширенной разрядной сетке и выполнить операцию сложения в новой разрядной сетке. Выполняем действия над числами в десятичной и двоичной системах счисления. Если результата – отрицательное число, для проверки нужно выполнить над ним операцию отрицания; если получим противоположное ему положительное число, значит сложение выполнено правильно. При выполнении операции сложения слагаемые записываются в заданном представлении чисел: если слагаемое положительное – оно записывается как положительное число в дополнительном коде; если слагаемое отрицательное число, оно записывается как отрицательное число в дополнительном коде. Правильность записи чисел в нижеприведенных примерах можно проверить используя таблицу 2 «Варианты двоичного 4-разрядного представления целых чисел».

Сложение. Обозначим слагаемые как S1 и S2

S1

- 7

+1

0

0

1

S2

+5

0

1

0

1

- 2

1

1

1

0

=-2

Проверка:

операция

1

1

1

0

отрицания

+0

0

0

1

1

0

0

1

0

=+2

S1

- 4

+1

1

0

0

S2

+4

0

1

0

0

0

1

0

0

0

0

= 0

перенос

S1

+3

+0

0

1

1

S2

+4

0

1

0

0

+7

1

0

1

1

1

=+7

S1

- 4

+1

1

0

0

S2

- 1

1

1

1

1

- 5

1

1

0

1

1

=-5

перенос

Проверка:

операция

1

0

1

1

отрицания

+0

1

0

0

1

0

1

0

1

=+5

S1

+5

+0

1

0

1

S2

+4

0

1

0

0

+9

1

0

0

1

=+9

переполнение

Выполним расширение разрядной сетки до 8 разрядов:

0

0

0

0

0

1

0

1

0

0

0

0

0

1

0

0

0

0

0

0

1

0

0

1

=+9

S1

- 7

+1

0

0

1

S2

- 6

1

0

1

0

-13

1

0

0

1

1

=-13

переполнение

Выполним расширение разрядной сетки до 8 разрядов:

1

1

1

1

1

0

0

1

1

1

1

1

1

0

1

0

1

1

1

1

1

0

0

1

1

=-13

Перенос

Выполним проверку:

1

1

1

1

0

0

1

1

+0

0

0

0

1

1

0

0

1

0

0

0

0

1

1

0

1

=+13

Вычитание. Обозначим уменьшаемое как М, а вычитаемое как S

Для выполнения операции вычитания необходимо предварительно выполнить операцию отрицания над вычитаемым, а затем сложить результат с уменьшаемым по правилам сложения чисел в дополнительном коде.

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

М

+2

1)

=

=

-7

=

1

0

0

1

S

+7

+7

0

1

1

1

- 5

1

0

0

0

1

-7

1

0

0

1

2)

М +

+0

0

1

0

1

0

0

1

1

0

1

1

=

-5

Проверка:

операция

1

0

1

1

отрицания

0

1

0

0

1

0

1

0

1

=

+5