Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
informatika.pdf.doc
Скачиваний:
9
Добавлен:
27.04.2019
Размер:
532.99 Кб
Скачать

5 Случай (переполнение)

А и В положительные, сумма А И В больше либо равна 2n-1, где n – количество разрядов формата чисел ( для однобайтового формата n=8, 2n-1=27=128)

Десятичная запись: Двоичные коды:

6 5 0 1000001

97 0 1100001

162 1 0100010 Переполнение,

не совпадает знак суммы

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

6 Случай (переполнение)

А и В отрицательные, сумма абсолютных величин А и В больше либо равна 2n-1

Десятичная запись: Двоичные коды:

– 63 1 1000000 Обратный код числа –63

–95 1 0100000 Обратный код числа –95

–158 10 1100000 Переполнение

+1

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

Сложение в дополнительных кодах

Все рассмотренные случаи имеют место и при сложении дополнительных кодов чисел.

1 случай тот же (см. выше)

2 Случай

А положительное, В отрицательное и по абсолютной величине больше, чем А.

Десятичная запись: Двоичные коды:

3 0 0000011

_–10 1 1110110 Дополнительный код числа –10

–7 1 1111001 Дополнительный код числа –7

Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица:

1 0000110+1=1 0000111 = –710.

3 Случай

А положительное, В отрицательное и по абсолютной величине меньшее, чем А.

Десятичная запись: Двоичные коды:

10 0 0001010

_–3 1 1111100 Дополнительный код числа –3

7 0 0000110

перенос отбрасывается

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

4 Случай

А и В отрицательные.

Десятичная запись: Двоичные коды:

–7 1 1111101 Дополнительный код числа –3

_–3 1 1111001 Дополнительный код числа –7

–10 11 1110110

перенос отбрасывается

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

Сравнение рассмотренных форм кодирования целых чисел со знаком показывает: на преобразование отрицательного числа в обратный код компьютер затрачивает меньше времени, чем на преобразование в дополнительный код, так как последнее состоит из двух шагов — образования обратного кода и прибавления единицы к его младшему разряду; время выполнения сложения для дополнительных кодов чисел меньше, чем для их обратных кодов, потому что в таком сложении нет переноса единицы из знакового разряда в младший разряд результата

Умножение и деление.

Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число “нуль”. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Умножим 1100112 на 1011012.

Накапливающий сумматор: Множитель:

+ 0 0 0 0 0 0 0 0 0 0 0 0 101101

1 1 0 0 1 1

1 1 0 0 1 1 101100

1 1 0 0 1 1___ Сдвиг на две позиции влево

1 1 1 1 1 1 1 1 101000

__1 1 0 0 1 1______ Сдвиг на одну позиции влево

1 0 1 0 0 1 0 1 1 1 100000

_ 1 1 0 0 1 1_________ Сдвиг на две позиции влево

1 0 0 0 1 1 1 1 0 1 1 1 000000

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]