
информатика_1 / лекции / 11
.pdfАРИФМЕТИЧЕСКИЕ ОСНОВЫ РАБОТЫ КОМПЬЮТЕРА
Как компьютер выполняет арифметические действия над целыми числами
Форма представления целых чисел со знаком, когда крайний левый бит разрядной сетки отводится под знак, а остальные биты – под цифры числа, называется прямым кодом. Форма представления двоичных чисел в виде прямого кода используется в компьютере для хранения только целых положительных чисел.
Отрицательные числа хранятся в дополнительном коде. Дополнительный код отрицательного двоичного числа получается по следующему правилу:
отрицательное двоичное число записывается в прямом коде (в старшем бите помещается единица); все разряды прямого кода, кроме знакового
(старшего бита) инвертируются – получается
обратный код;
к младшему разряду обратного кода прибавляется единица по правилам сложения двоичных чисел – получается дополнительный код.
Представить в двух байтах число -1910 в дополнительном коде.
1. Преобразуем в 2-ю с.с.
-1910 = -100112
2.Записываем прямой код.
1000000000010011
3.Получаем обратный код (все разряды прямого кода кроме знакового инвертируем).
1111111111101100
4. Получаем дополнительный код путем прибавления к обратному единицы.
1 111111111101101
Чтобы не было путаницы принято соглашение, что для положительных чисел обратный и дополнительный коды совпадают с прямым.
Дополнительный код используется для замены операции вычитания простым сложением.
При алгебраическом сложении (алгебраическое сложение – это сложение чисел со знаками) двух двоичных чисел с использованием дополнительного кода, положительные слагаемые представляются в компьютере в прямом коде, а отрицательные – в дополнительном. Затем производится суммирование этих кодов, включая разряды знаков.
При этом операция сложения выполняется над всеми разрядами полученного дополнительного кода, т.е. распространяется и на разряды знаков, рассматриваемых в данном случае как разряды числа.
При возникновении переноса из знакового разряда единица переноса отбрасывается, т.к. она вышла за пределы разрядной сетки. В результате получается алгебраическая сумма в прямом коде, если она положительна (в знаковом разряде оказался 0), или в дополнительном коде, если эта сумма получилась отрицательной (в знаковом разряде оказалась единица).

Пример. Даны числа A = 3410, B = 3010. Вычислить A + B, A - B, B - A, A B
в однобайтовом формате.
Решение.
1. Найдем сумму A+B:
Числа -A = -3410 и -B = -3010 представим в дополнительном однобайтовом коде.
|
A |
B |
прямой |
1 0100010 |
1 0011110 |
обратный |
1 1011101 |
1 1100001 |
дополнительный |
1 1011110 |
1 1100010 |

Найдем разность A – B:
Единица, вышедшая за пределы восьмиразрядной сетки, отбрасывается, результат
положительное число 1002 = 410.