Задание 1.3
Представить двоичные числа А и В в форме с плавающей запятой.
Решение
A(2)=1010011,00110=0,10100110011010111
где [Aм]=00.101001100110 – мантисса числа,
[Ап]=00.111 – порядок числа.
B(2)=11000,1010011=0,11000101001110101
где [Bм]=00.110001010011 – мантисса числа,
[Bп]=00.101 – порядок числа.
Задание 1.4
Просуммировать эти числа в дополнительном и обратном кодах для всех случаев сочетания знаков слагаемых (А>0; В>0) (А<0; B>0) (А>0; В<0) (А<0; В<0). Обратить внимание на случаи переполнения и денормализации результата, для которых порядок суммы должен быть изменен после нормализации результата.
[Aм]=00.101001100110 – мантисса числа А,
[Ап]=00.111 – порядок числа А.
[Bм]=00.110001010011 – мантисса числа В,
[Bп]=00.101 – порядок числа В.
Пусть C1=A+B, С2=(–А)+(В), С3=А+(–В); С4=(–А)+(–В).
Решение
Для выполнения операций используем модифицированный код.
Дополнительный код
Для суммирования выполним выравнивание порядков.
Для этого из порядка первого числа вычтем порядок второго:
[Ап]ДК 00.111
[–Вп]ДК 11.011
[Ап]ДК–
[Вп]ДК
100.010
разность порядков в ДК
[Ап]ПК– [Вп]ПК 0.010 разность порядков в ПК
Т.к. разность порядков положительна, в качестве общего порядка берется порядок числа А. Тогда порядок числа В необходимо увеличить на 10 и выполнить арифметический сдвиг его мантиссы на два разряда вправо. То после выравнивания получим следующие мантиссы операндов в ПК:
[Ам’]ПК=0.101001100110
[Вм’]ПК=0.001100010100
1) А>0; В>0
[Ам’]ДК=00.101001100110
[Вм’]ДК=00.001100010100
[C1м’]=
00.101001100110 [Ам’]ДК
+ 00.001100010100 [Вм’]ДК
00.110101111010 [С1м’]ДК
00.110101111010 [С1м’]ПК
С1={[C1п]ПК=00.111, [С1м]ПК=00.110101111010}
2) А<0; B>0
[Ам’]ДК=11.010110011010
[Вм’]ДК=00.001100010100
[C2м’]=
11.010110011010 [–Ам’]ДК
+ 00.001100010100 [Вм’]ДК
11.100010101110 [С2м’]ДК
-0.011101010010 [С2м’]ПК
С2={[C2п]ПК=00.111, [С2м]ПК=-0,011101010010}
3) А>0; В<0
[Ам’]ДК=00.101001100110
[Вм’]ДК=11.110011101100
[C3м’]=
00.101001100110 [Ам’]ДК
+ 11.110011101100 [–Вм’]ДК
100.011101010010
[С3м’]ДК
00.011101010010 [С3м’]ПК
С3={[C3п]ПК=00.111, [С3м]ПК=0,011101010010}
4) А<0; В<0
[Ам’]ДК=11.010110011010
[Вм’]ДК=11.110011101100
[C4м’]=
11.010110011010 [–Ам’]ДК
+ 11.110011101100 [–Вм’]ДК
111.001010000110
[С4м’]ДК
- 0.110101111010 [С4м’]ПК
С4={[C4п]ПК=00.111, [С4м]ПК=-0,110101111010}
Обратный код
Для суммирования выполним выравнивание порядков.
Для этого из порядка первого числа вычтем порядок второго:
[Ап]ОК 00.111
[–Вп]ОК + 11.010
100.001
+ 1 корректировка
[Ап]ДК– [Вп]ДК 00.010 разность порядков в ОК
[Ап]ПК– [Вп]ПК 00.010 разность порядков в ПК
Т.к. разность порядков положительна, в качестве общего порядка берется порядок числа А. Тогда порядок числа В необходимо увеличить на 10 и выполнить арифметический сдвиг его мантиссы на два разряда вправо. То после выравнивания получим следующие мантиссы операндов в ПК:
[Ам’]ПК=0,101001100110
[Вм’]ПК=0,001100010100
1) А>0; В>0
[Ам’]ОК=0.101001100110
[Вм’]ОК=0.001100010100
[C1м’]=
00.101001100110 [Ам’]ОК
+ 00.001100010100 [Вм’]ОК
00.110101111010 [С1м’]ОК
00.110101111010 [С1м’]ПК
С1={[C1п]ПК=00.111, [С1м]ПК=0,110101111010}
2) А<0; B>0
[Ам’]ОК=11.010110011001
[Вм’]ОК=00.001100010100
[C2м’]=
11.010110011001 [–Ам’]ОК
+ 00.001100010100 [Вм’]ОК
11.100010101101 [С2м’]ОК
-0.011101010010 [С2м’]ПК
С2={[C2п]ПК=00.111, [С2м]ПК=-0,011101010010}
3) А>0; В<0
[Ам’]ОК=00.101001100110
[Вм’]ОК=11.110011101011
[C3м’]=
00.101001100110 [Ам’]ОК
+ 11.110011101011 [–Вм’]ОК
100.011101010001 [С3м’]ОК
+ 1 корректировка
00.011101010010 [С3м’]ОК
00.011101010010 [С3м’]ПК
С3={[C3п]ПК=00.111, [С3м]ПК=0,011101010010}
4) А<0; В<0
[Ам’]ДК=11.010110011001
[Вм’]ДК=11.110011101011
[C4м’]=
11.010110011001 [–Ам’]ОК
+ 11.110011101011 [–Вм’]ОК
111.001010000100 [С4м’]ОК
+ 1 корректировка
11.001010000101 [С4м’]ОК
- 0.110101111010 [С4м’]ПК
С4={[C4п]ПК=00.111, [С4м]ПК=-0,110101111010}
