Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет информатики и радиоэлектроники»
Факультет непрерывного и дистанционного обучения
Специальность: "Программное обеспечение информационных технологий"
КОНТРОЛЬНАЯ РАБОТА ПО ОСНОВАМ КОМПЬЮТЕРНОЙ ТЕХНИКИ
Вариант № 02
Минск 2010
Задание 1
Задание 1 состоит из двух частей:
-
задание 1.1, относящееся к разделу “Арифметика с алгебраическими числами”;
-
задание 1.2, относящееся к разделу “Арифметика с плавающей точкой”.
Задание 1.1
Задание предполагает нахождения значений С1, С2, С3, С4, определяемые выражениями:
С1 = А+В, С2 = А-В, С3 = В - А, С4 = -А -В
А = -3927; В = +1184;
при выполнении вычислений необходимо использовать двоично-десятичный обратный код.
Решение:
Составляем двоично-десятичную запись для чисел А и В.
А = -392710 = -0011 1001 0010 0111;
В = +118410 =+0001 0001 1000 0100;
[A]мпк = 11. 0011 1001 0010 0111;
[A]МИК = 11.1100 0110 1101 1000;
[|A|]МПК = 00. 0011 1001 0010 0111;
[-A]МИК = 00. 0011 1001 0010 0111;
[B]мпк =00. 0001 0001 1000 0100;
[B]мик =00. 0001 0001 1000 0100;
[|B|]МПК =00. 0001 0001 1000 0100;
[-B]мик =11.1110 1110 0111 1011;
С1=А+В
11.1100 0110 1101 1000 [A] мик
+ 00.0001 0001 1000 0100 [B] мпк
11.1101 1000 0101 1100
0110
11.1101 1000 1011 1100 [C1] мик
[C1] мпк=11.1101 1000 1011 1100
- 2 7 4 3 десятичный эквивалент
С2=A-B=-(|A|+|B|);
00. 0011 1001 0010 0111 [|A|]МИК
+ 00. 0001 0001 1000 0100 [|B|]MИK
00. 0100 1010 1010 1011
0110 0110 0110 коррекция в тетрадах, где был
перенос.
00. 0101 0001 0001 0001 [C]MИK
5 1 1 1 десятичный эквивалент
C3=-A+B;
00. 0011 1001 0010 0111 [-A]МИК
+ 00. 0001 0001 1000 0100 [B]MИK
00. 0100 1010 1010 1011
0110 0110 0110 коррекция в тетрадах, где был
перенос.
00. 0101 0001 0001 0001 [C]MИK
5 1 1 1 десятичный эквивалент
C4=-A-B;
00.0011 1001 0010 0111 [-A] мик
+ 11.1110 1110 0111 1011 [-B] мик
100.0010 0111 1010 0010
1
-
0010 0111 1010 0011
0110 коррекция в тетрадах, где было
переполнение.
00.0010 0111 0100 0011 [C4] мпк
2 7 4 3
1.2
Найти разность сумму чисел :
АМ = -0,54;
Ап =+4;
ВМ = -0,80;
Bп =+2;
Решение.
Запишем мантиссу и порядок для числа А и В в двоичной форме в прямом, дополнительном коде.
[ап]пк = 0.100; [ап]мдк =00.100;
[вп]пк = 0.010; [-вп]мдк=11.110;
[ам]пк = 11.100010; [ам]мок =11.011101;
[вм]пк = 11.110011; [вм]мок =11.001100;
Начнем с выравнивания порядков.
Для этого из порядка первого числа вычитается порядок второго числа:
0.100 [а п]дк
+ 1.110 [-в п] дк
0.010 - разность порядков в дополнительном коде,
0.010 - разность порядков в прямом коде.
Так как знак разности порядков положительный, то в качестве общего порядка, а следовательно, и предварительного значения порядка искомого результата С1п`, берется порядок первого числа (ап). Для того чтобы взять в качестве порядка второго числа порядок первого числа, т.е. увеличив его порядок на 2, необходимо мантиссу этого меньшего числа умножить на 2-2, т.е. выполнить её арифметический сдвиг на два разряда вправо.
Таким образом, будем иметь после выравнивания следующую форму представления операндов:
[а м`] пк = 11.100010,
[в м`] пк = 11.001100,
[в м`] мдк = 11.110011
После выравнивания порядков можно определить предварительное значение мантиссы С1` как
С1` = [а м] пк ` - [в м] пк`.
11.011101 [а м`] мок
+ 11.110011 [-в м`] мок
111.010000 [С1’] мок.
Из записи [С1`]дк, полученной после вычитания мантисс операндов с выравненными порядками, видно, что нормализация представления результата не нарушена.
С1{ [c1 п ] пк =00.100, [c1 м ] пк = 11.101111}.