ОКТ. Контрольная работа №1. Вариант 14
.docУЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Факультет заочного, вечернего и дистанционного обучения
Специальность: программное обеспечение
информационных технологий
КОНТРОЛЬНАЯ РАБОТА
ПО ОСНОВАМ КОМПЬЮТЕРНОЙ ТЕХНИКИ № 1
Вариант № 14
Контрольная работа № 1.
Вариант № 14.
Задание 1
Задание 1 состоит из двух частей:
-
задание 1.1, относящееся к разделу «Арифметика с алгебраическими числами»;
-
задание 1.2, относящееся к разделу «Арифметика с плавающей точкой».
Задание 1.1
Задание предполагает нахождения значений С1, С2, С3, С4, определяемые выражениями:
С1 = А+В,
С1 = А−В,
С1 = В− А,
С1 = − А −В
При выполнении задания операнды А и В необходимо представить в двоично-десятичной системе, сформировать для них прямые коды и, используя заданный код в варианте по правилам двоично-десятичной арифметики, описанной в разделе «Арифметика с алгебраическими двоично-десятичными числами», найти значения С1, С2, С3, С4.
Результат должен быть представлен в прямом коде.
Дано:
Операнд А ![]()
Операнд В ![]()
Код, используемый при выполнении задания: обратный
Решение:
С1 = А+В
С2 = А − В = A + (−B)
С3 = В − А = B + (−A)
С4 = − А – В = (−A) + (−B)
A =
= ![]()
= 11. 0001 0101 0001 1000
=
= 11.
1110 1010 1110 0111
=
= 00.
0001 0101 0001 1000
B =
=
![]()
=
= 00.
0011 0110 0010 1000
= 11.
0011 0110 0010 1000
=
= 11. 1100 1001 1101 0111
С1 = А+В
С1 = 11. 1110 1010 1110 0111
− ![]()
+ 00.
0011 0110 0010 1000
− ![]()
100. 0010 0001 0000 1111
+ 1 – учёт переноса при
суммировании обратных кодов
00. 0010 0001 0001 0000 - ![]()
+ 1010 – коррекция в тетрадах, где не
было переноса
00. 0010 0001 0001 1010 - ![]()
− 1010 – коррекция в тетрадах, где числа
больше 1001
-
0010 0001 0001 0000 -
= 
+ 2 1 1
0 − ![]()
С2 = А − В
|C2| = 00.0001 0101 0001 1000 − [|A|]
+ 00.0011 0110 0010 1000 − [|B|]
00.0100 1011 0100 0000 − [|C2|]
+ 0110 0110 + 6
00.0101 0001 0100 0110 −
![]()
5 1 4
6 − ![]()
+
5 1 4 6 − ![]()
С3 = В − А
|C3| = 00.0001 0101 0001 1000 − [|A|]
+ 00.0011 0110 0010 1000 − [|B|]
00.0100 1011 0100 0000 − [|C3|]
+ 0110 0110 + 6
00.0101 0001 0100 0110 −
![]()
5 1 4
6 − ![]()
+ 5 1 4
6 − ![]()
С4 = − А – В = (−A) + (−B)
С4 = 0. 0001 0101 0001
1000 − ![]()
+ 1.
1100 1001 1101 0111
− ![]()
1. 1101 1110 1110 1111 −
![]()
1. 0010 0001 0001 0000 −
![]()
− 2 1 1
0 − ![]()
Задание 1.2
Задание предполагает выполнение заданной операции над числами А и В, представленными с плавающей точкой.
При выполнении задания порядки и мантиссы операндов А и В, заданные в таблице, необходимо представить в двоичной системе счисления и сформировать для них прямые коды. Разрядность модуля порядка должна быть равна 3, разрядность модуля мантиссы - 6 .
Результат (порядок и мантисса) должен быть представлен в прямом коде в нормализованной форме.
Дано:
|
A |
B |
код |
опер. |
||||||
|
порядок |
мантисса |
порядок |
мантисса |
||||||
|
знак |
абс.знач. |
знак |
абс.знач. |
знак |
абс.знач. |
знак |
абс.знач. |
||
|
− |
2 |
+ |
0.65 |
+ |
2 |
− |
0.51 |
доп. |
+ |
|
1 |
10 |
0 |
.101011 |
0 |
10 |
1 |
.100001 |
|
|
Решение:
= 1.010
= 0.1010011 ≈ 0.101011
= 0.010
= 1.1000001 ≈ 1.100001
= 1.110
= 0.101010
= 0.010
= 1.011111
11.110 ![]()
+ 00.010 ![]()
100.000 разность
порядков в ДК
00.000 разность порядков в ПК
=> мантиссы не сдвигаем
=
+ ![]()
00.101010 ![]()
+ 11.011111 ![]()
100.001001 ![]()
00.110111
Таким образом, мы получили нормализованную мантиссу − старший разряд мантиссы равен единице.
С1
{
= 0.000,
= 11.110111}
