Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. Лекции. 2009. Измайлов.doc
Скачиваний:
10
Добавлен:
26.10.2018
Размер:
4 Mб
Скачать

В итоге получается

х + у = 0011= .

Это отвечает истинному результату алгебраического сложения 6 – 3 = 3.

Следует отметить, что если результат сложения положительный (нуль в знаковом разряде), то он воспринимается как прямой код. Если же результат сложения отрицательный (единица в знаковом разряде), то он воспринимается в том коде, в каком было представлено отрицательное число при сложении. Например, необходимо сложить два числа х= и у =. Прямой, обратный и дополнительный код отрицательного числа х имеют вид соответственно , и . Положительное число у используется только в прямом коде .

Алгебраическое сложение с использованием обратного кода отрицательного числа х

1001

0011

.

Здесь полученный результат отрицательный, о чем свидетельствует единица в знаковом разряде. Коль скоро он отрицательный, то его код воспринимается как код отрицательного слагаемого х, то есть обратный. Чтобы перевести результат в обратном коде в десятичную систему счисления, необходимо обратный код перевести в прямой, затем в двоичный, а потом в десятичный код.

Алгебраическое сложение с использованием дополнительного кода отрицательного числа х.

1010

0011

Здесь отрицательное слагаемое х использовано в дополнительном коде, поэтому и результат воспринимается в дополнительном коде. Путь перевода результата в десятичную систему счисления аналогичен предыдущему случаю.

Следует иметь в виду, что для заданной длины разрядной сетки, дополнительным кодом представляется на единицу больше отрицательных чисел, чем положительных. Например, в 8-разрядной сетке можно представить наибольшее положительное число +127 в прямом коде как 01111111 и наименьшее отрицательное число –128 в дополнительном коде как 10000000. По этим причинам для представления отрицательных чисел в компьютере чаще используется дополнительный код.

4.3.1. Операция алгебраического сложения чисел, представленных в форме с фиксированной точкой

При алгебраическом сложении чисел, представленных в форме с фиксированной точкой, слагаемые представляются в дополнительном коде, так как они хранятся в памяти в этом коде. Если результат положительный (нуль в знаковом разряде), то он воспринимается в прямом коде (для положительных чисел прямой и дополнительный код одинаков), если результат отрицательный (единица в знаковом разряде), то он воспринимается в дополнительном коде.

Иногда при сложении кодов возникает переполнение разрядной сетки, что ведет к искажению результата. Переполнение устанавливается путем анализа переносов в знаковый разряд и из него. Признаком переполнения является наличие переноса в знаковый разряд суммы при отсутствии переноса из знакового разряда (положительное переполнение) или наличие переноса из знакового разряда суммы при отсутствии переноса в ее знаковый разряд (отрицательное переполнение). При положительном переполнении – результат операции положительный, а при отрицательном – отрицательный.

Если же переносов из знакового разряда и в знаковый разряд суммы нет или есть оба эти переноса, то переполнения нет и при нуле в знаковом разряде сумма положительная и представлена в прямом коде, а при единице в знаковом разряде сумма отрицательная и представлена в дополнительном коде.