Файл: Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей.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 |
порядок |
|
|
|
|
знак порядка |
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