Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
оифтик 08-2012 готовый.docx
Скачиваний:
77
Добавлен:
11.05.2015
Размер:
7.45 Mб
Скачать

Тема 2.2. Выполнение арифметических операций в эвм

2.2.1. Выполнение операций сложения/вычитания чисел, представленных в форме с фиксированной точкой

Алгебраическое сложение чисел с ФТ в ЭВМ может производиться в одном из трех кодов: прямом (ПК), дополнительном (ДК) или обратном (ОК). Результат получается в этих же кодах.

Чаще всего используются дополнительный и обратный коды. При этом знаковый разряд и цифровая часть числа рассматриваются как единое целое, в результате чего с отрицательными числами ЭВМ оперирует как с положительными, независимо от того, в каком виде они представлены – правильных дробей или целых чисел.

Основные достоинства дополнительного и обратного кодов рассмотрены в подразделе 2.3 «Кодирование чисел в ЭВМ».

Суммирование двоичных чисел производится в соответствии с таблицей сложения:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10, →1 переносится для сложения в старший разряд.

Фактически выполняется сложение трех чисел – операндов и переноса.

Алгебраическое сложение многоразрядных чисел обычно организуется как регулярный процесс, состоящий из n одинаковых операций поразрядного сложения-вычитания (где n – количество разрядов в каждом операнде).

Возможны 4 случая (таблица 2.6).

Таблица 2.6. Алгебраическое сложение чисел

х1

х2

х312

1

> 0

> 0

> 0

2

> 0

< 0

> 0

3

> 0

< 0

< 0

4

< 0

< 0

< 0

Пример выполнения операции сложения/вычитания чисел с ФТ, представленных в двоичной системе счисления, с применением трех видов кодирования, приведен в таблице 2.7.

Таблица 2.7. Пример сложения/вычитания чисел в форме с ФТ

Обычная запись

Код

прямой

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

обратный

1-й случай: х1> 0, x2> 0, x3> 0

х1 = 0,10011

х2= 0,00011

х3= 0,10110

[х1]пр=0,10011

[х2]пр=0,00011

[х3]пр=0,10110

[х1]доп = 0,10011

[х2]доп = 0,00011

[х3]доп= 0,10110

[х1]обр = 0,10011

[х2]обр = 0,00011

[х3]обр= 0,10110

2-й случай: х1> 0, x2< 0, x3> 0

х1 = 0,10011

х2= – 0,00011

х3 = 0,10000

[х1]пр=0,10011

[х2]пр=1,00011

[х3]пр=0,10000

(вычитание

x2 из x1)

[х1]доп = 0,10011

[х2]доп = 1,11101

[х3]доп= 10,10000

(1 отбрасывается)

[х3]пр = 0,10000

[х1]обр = 0,10011

[х2]обр = 1,11100

[х3]обр=10,01111

(1 добавл.) +1

[х3]обр = 0,10000

3-й случай: х1< 0, x2> 0, x3< 0

х1 = –0,10011

х2= 0,00011

х3 = –0,10000

[х1]пр=1,10011

[х2]пр=0,00011

[х3]пр=1,10000

[х1]доп = 1,01101

[х2]доп = 0,00011

[х3]доп= 1,10000

преобраз. кода

[х3]пр= 1,10000

[х1]обр = 1,01000

[х2]обр = 0,00011

[х3]обр= 1,01111

преобраз. кода

[х3]пр= 1,10000

4-й случай: х1< 0, x2< 0, x3< 0

х1 = –0,10011

х2= – 0,00011

х3= –0,10110

[х1]пр=1,10011

[х2]пр=1,00011

[х3]пр=1,10110

[х1]доп = 1,01101

[х2]доп = 1,11101

[х3]доп=11,01010

(1 отбрасывается) преобраз. кода

[х3]пр= 1,10110

[х1]обр = 1,01100

[х2]обр = 1,11100

[х3]обр=11,01000

(1 добавл.) +1

[х3]обр = 1,01001

преобраз. кода

[х3]пр= 1,10110

При выполнении операций сложения/вычитания может возникнуть переполнение разрядной сетки. На практике одним из наиболее распространенных методов выявления переполнения является метод, основанный на применении так называемых модифицированных кодов.

Модифицированные коды отличаются от обычных тем, что у них знаки изображаются двумя цифрами:

00 – положительное число (+);

11 – отрицательное число (–).

01 и 10 – запрещенные комбинации.

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

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

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