Файл: Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.06.2024

Просмотров: 127

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

§ 1— 9. С п о с о б ы

к о д и р о в ан и я

чисел с уч ето м

зн а к а

 

Будем

рассматривать способы

кодирования

только

для

чисел, по

абсолютной

величине меньших единицы, так

как

любое другое число можно представить, согласно формуле (2—5), в виде мантиссы (по абсолютной величине, меньшей

единицы) и целой степени двойки.

 

числа в прямом коде

П р я м о й

код.

При кодировании

его цифровая

часть

записывается

без

изменений, а

знаку

числа приписывается 0 (если число положительное)

или 1

(если число отрицательное). О и 1

записываются

в знаковом

разряде разрядной сетки на месте нуля целых.

 

 

Пример 1. N t — 0,101, Ni = — 0,101.

Закодировать эти

числа

с уче­

том знака в прямом коде.

 

 

 

 

 

 

 

Nt= ОДОІ1

[/Ѵ,]пр=

ОДШ;

 

 

 

 

iVs=-0;101

[tf*]np=l,mi;

 

 

]іѴ]пр означает, что число N представлено в прямом коде.

Обратный [N]o6p и дополнительный|УѴ]допкоды вводятся для представления отрицательных чисел в машине, что позволя­ ет заменить операцию вычитания операцией сложения и та­ ким образом существенно упростить конструкцию арифмети­ ческого устройства. Положительные числа в прямом, обрат­ ном и дополнительном кодах совпадают (по определению). Для представления отрицательного числа в обратном коде ■необходимо в разряде знаков поставить 1, все нули этого кода заменить на единицы, а единицы — на нули. Чтобы полу­ чить дополнительный код отрицательного числа, нужно к младшему разряду обратного кода этого числа прибавить единицу.

Пример 2. Представить числа Л', = 0,M ill и N2 = — 0,11111 в прямом, обратном и дополнительном кодах.

Щ ]п р = [ЛГ,]обр — [^і]доп = 0,111М;

[ЛГ2[пр = 1,11111; [Л^з]обр ^ 1,00000;

[ЛГ2]доп =' 1,00001.

Пример 3. Представить число — 12 в прямом, обратном и дополни­ тельном коде.

112,0 = — Ш002 = — ОДіЮО.Ю100.

Таким образом:

1

 

II а с

0

 

о

 

 

О

[— И2]обр

=

0

100

1

? с

II с

0

S

 

 

 

 

t

t

 

 

 

 

1

1

 

 

 

 

1

1

 

 

 

 

1

порядок

 

 

 

 

знак порядка

,1100

 

ООП

li

0100

ч t

t

1мантисса

'знак мантиссы

ЮЗ


Модифицированный обратный и дополнительный коды

В модифицированном

обратном

и дополнительном коде

на изображение

знака отводится два .разряда, а числа пере­

водятся по тем

же іпріавилам, что и в простом обратном к

дополнительном коде.

 

 

Пример 4. N = — 0,1001;

№ р =

11,0110

п = 11.0111

Ввычислительной машине арифметические операции над числами обычно выполняются в 'модифицированных кодах.

§1 —10. Арифметические действия над двоичными числами

Над двоичными числами производятся все четыре арифме­

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

Сложение и вычитание чисел с фиксированной запятой

Пример 1. Сложить числа 0,01000 и 0,01010

0,01000

+

0,01010

0,10010

Пример 2. Сложить числа 0,011110 и 0,001110.

0,01' Ы О

+

0,001110

0,10100

Если в результате сложения двух чисел результат превы­ шает единицу, то происходит переполнение разрядной сетки

(останов машины).

 

производить

в следующих

В ы ч и т а н и е чисел следует

случаях:

операции

«сложение»

при разных

знаках чисел;

1)

при

2)

при

операции

«вычитание» при одинаковых знаках чи­

сел.

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

104


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

Пример 3. Сложить числа /1 = 0,10010 и В = — 0,01010 в обратном и дополнительном модифицированных кодах.

№ р = 11-10101,

] В ] “ 0П11,101110.

При обычном вычитании получим:

 

0,10010

 

 

 

0,01010

 

 

 

 

0,01000

 

При сложении

При сложении

в обратном коде

в дополнительном коде

 

0 0 ,1 0 0 1 0

“Ь

0 0 ,1 0 0 1 0

 

+

 

111,10110

 

11,10101

 

 

100,00111

1

00,01000

 

+

 

t

 

 

 

 

 

 

---------- -> 1

отбрасываем

 

00,01000

 

 

Пример 4.

Из

А = 0,01010

вычесть число В = 0,10010.

[-ß]"6p =11,01101

[— В]доп = 11,01110.

При обычном вычитании

При сложном

 

 

 

в' обратном коде

 

 

0,01010

00,01010

 

 

0,1.0010

+

 

 

 

ІіГ.ШЧШ

 

-

0,01000

11,10111

 

 

I

 

 

[А/]пр =• 1,01.000.

Переводим число 11,ЮПИ в

 

 

 

прямой код:

11,01000.

Вычитание в дополнительном коде

00,01010

+

11,01110

ИДИ000

Переводим число 11,1:1000 в прямой код. Для этого сначала число 11,11000 переводим в обратный код 11,00111, затем прибавляем единицу к младшему разряду этого кода. Получим 1І1Д1000.

105


Сложение и вычитание чисел с плавающей запятой

Последовательность выполнения операций сложения (вычитания):

1.Определение разности порядков.

2.Выравнивание порядков.

3.Сложение или вычитание мантисс чисел.

4.Нормализация результата.

5.Округление результата.

Пример 1. Найти сумму чисел А = О,MOL10101 и В = ОДЮ1.1011 и округлить ее до пяти двоичных'разрядов.

1.Определение разности порядков:

101 — 11 = 10.

2.Выравнивание порядков.

Мантиссу второго (меньшего) числа сдвигаем вправо на два разряда.' Тогда

В= 0,00110.10101.

3.Сложение мантисс чисел:

0,11010

+

0,001110

,1,00000

4.Нормализация результата.

Так как выход из нормализации произошел влево, сдвигаем число вправо на один разряд, соответственно увеличив порядок:

0,10000.10110.

Пример 2. Сложить ненормализованные числа А = 0,00001.10° и

В= 0,00011.40°.

1.Так как порядки чисел равны, то определение разности порядков и выравнивание порядков производить не нужно.

2.Сложение мантисс чисел:

0,00001

+

0,00011

0,00100.

3.Нормализация результата.

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

А + В = 0,10000.10-1°

Пример 3. Определить

разность

чисел

А = 0,1101.ІО101

и

В= 0,1100.10ой.

1.Выравнивание порядков: 101— 011 = 10. Следовательно,

В= О.ООіП.Ю101.

2.Вычитание мантисс чисел (в обратном коде): [-ß]Ö6p = 14,Ы00

106


00,1101

+ 1.1,1100

1 00,1ОШ

+

1

00,1010

3.Результат 00,1010.10101 получился нормализованным.

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

Умножение (деление) чисел производится в прямом коде. Знак произведения (частного) определяется .путем суммиро­ вания знаковых разрядов сомножителей (делимого и делите­ ля, § 1—8).

Умножение и деление чисел с фиксированной запятой

Порядок выполнения операции умножения:

1.Определение знака произведения.

2.Перемножение мантисс по обычным правилам ариф-

,метики и округление.

Пример I. Перемножить числа Л = 0,1101 и В 0,1011.

1. Определение знака произведения.

Знак первого числа 0 (число положительно).

Знак второго числа 0

(число положительно).

0 + 0 =

0 (знак произведения + ).

2. Перемножение мантисс:

0,1101

+

0,1011

1101

1101

0000

+

1101

0,10001111

3. Округление результата до пяти двоичных разрядов:

0,10010.

Пример 2. Перемножить числа А = ОДіЮГи В = — 0,1011. [ß]np= 1,1011.

 

Знак

первого числа 0.

 

 

Знак

второго числа 1.

 

 

Знак произведения 0 + 1 =

1.

<•

[Л .В ]Пр = 1,10010 (см. пример

1).

107

Порядок выполнения операции деления в машине

сфиксированной запятой

1.Определение знака частного.

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

останов машины).

Пример I. Разделить А = 0,101 на В = — 0,111.

Знак первого числа 0. Знак второго числа 1. Знак частного 0 +! 1 = 1.

Так как при определении остатка операция вычитания заменяется операцией сложения в обратном или дополнительном коде, то в машине деление выполняется следующим образом:

(дополн. код

 

0,1010

I

0,111

числа ОШ)

+

1001

 

0 .1011...

 

 

 

+

001100

 

 

 

111001

 

(дополн. код. числа 000111)

 

 

 

 

+

0001010 .

 

 

1111001

 

(дополн. код числа 0000МП)

 

 

 

 

 

0000011

 

и т. д.

 

 

 

 

Умножение и деление чисел с плавающей запятой

Порядок выполнения операции умножения:

1.Определение знака произведения.

2.Определение порядка произведения путем суммирова­

ния порядков сомножителей.

3. Перемножение мантисс сомножителей (как в машинах

сфиксированной запятой).

4.Нормализация (если она необходима) и округление результата.

Порядок выполнения операции деления:

1.Определение знака частного.

2.Определение порядка частного как разности порядков делимого и делителя.

3."Деление мантисс по обычным правилам.

Пример 1. На

машине с

плавающей запятой перемножить числа

А = 15,2 и В = 4,5.

 

двоичную систему счисления, получим:

Переводя числа А и В в

1 5,25 = 1111,01

4,5 = 100,1

или в нормализованном виде

А= 0,1525-ІО2 = 0,111101 • ІО100

В= 0,45 - 10‘ = 0,1001 10011

.108