Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
47
Добавлен:
18.03.2015
Размер:
292 Кб
Скачать
☆

Найдем разность B – A:

Результат отрицательный и получен в дополнительном коде.

Преобразуем результат в прямой код.

1) Преобразование, выполняемое

человеком

Перейдем в обратный код, для этого

вычтем 1:

1 1111100 дополнительный

- 1

__________

1 1111011 обратный

Перейдем в прямой код, для инвертируем все разряды обратного кода кроме знакового:

1 1111011 обратный

1 0000100 прямой

Итак, получен результат -1002 = -410.

2. Преобразование, выполняемое

компьютером

В компьютере преобразование из дополнительного кода в

прямой выполняется иначе, с

применением только сложения и инверсии, что упрощает устройство процессора.

Применяем инверсию, не затрагивая знакового разряда 1 1111100 дополнительный

1 0000011 промежуточный код

Прибавляем единицу

1 0000011 + 1

__________

1 0000100

Получен тот же результат -1002 = -410.

Найдем произведение A B, для ускорения процесса перемножения поменяем местами сомножители и вычислим B A:

Двоичные разряды произведения. вышедшие за пределы восьмиразрядной сетки,

отбрасываются. В результате

получим двоичное число 11111100.

Результат отрицательный и равен (после перевода в прямой код) - 410,

против ожидаемого 102010.

Правильный результат в этом случае получится в том случае, если для

результата будет выделено по

крайней мере 16 двоичных разрядов.

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

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

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

Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока

не достигнет нулевого значения.

Пример. Умножим 1100112 на 1011012:

Сумматор Множитель

000000000000 101101 + 110011

____________

000000110011

101100 (сдвиг на 2 позиции влево)

+ 110011

____________

11111111

Сумматор

Множитель

11111111

101000

+ 110011

(сдвиг еще на 1 позицию

____________

влево)

1010010111

100000

+110011

(сдвиг еще на 2 позиции

____________

влево)

100011110111

000000

Соседние файлы в папке лекции