КР, Курс 1, вар.5 / 1 КР
.docxБелорусский государственный университет
информатики и радиоэлектроники
Факультет заочного, вечернего и дистанционного обучения
Специальность”Программное обеспечение информационных технологий”
Контрольная работа
по дисциплине «Основы компьютерной техники»
Минск-2009
Задание 1
Задание 1 состоит из двух частей:
-
задание 1.1, относящееся к разделу “Арифметика с алгебраическими числами”;
-
задание 1.2, относящееся к разделу “Арифметика с плавающей точкой”.
Задание 1.1
Задание предполагает нахождения значений С1, С2, С3, С4, определяемые выражениями:
С1 = А+В, С2 = А-В, С3 = В - А, С4 =- А -В
А = 5493; В = 3275;
при выполнении вычислений необходимо использовать двоично-десятичный дополнительный код. с
Решение.
Составляем двоично-десятичную запись для чисел А и В.
А = 549310 = 0101 0100 1001 0011
В = 327510 = 0011 0010 0111 0101
Непосредственно используя правила формирования дополнительного кода найдем:
[А]пр = [А]дк = 0. 0101 0100 1001 0011
[В]пр = [В]дк = 0. 0011 0010 0111 0101
[-А]пр = 1. 1010 1011 0110 1101
[-А]дк = 1. 0100 0101 0000 0111
[-В]пр = 1. 0011 0010 0111 0101
[-В]дк = 1. 1100 1101 1000 1011
[С1]пк:
|
|
|
* |
|
* - тетрада, где был перенос. |
|
0 |
0101 |
0100 |
1001 |
0011 |
А |
|
+ 0 |
0011 |
0010 |
0111 |
0101 |
В |
|
0 |
1000 |
0111 |
0000 |
1000 |
|
|
+ |
|
|
0110 |
|
- коррекция в тетраде, где был перенос |
|
0 |
1000 |
0111 |
0110 |
1000 |
- [С1]пк |
|
+ |
8 |
7 |
6 |
8 |
- десятичный эквивалент |
|
|
|
|
|
|
|
|
С2 = А + (-В)
[С2]пк:
|
|
|||||
0 |
0101 |
0100 |
1001 |
0011 |
[А]ДК |
|
+1 |
1100 |
1101 |
1000 |
1011 |
[-B]ДК |
|
0 - 0 |
0010
0010 |
0010
0010 |
0001
0001 |
1110 0110 1000 |
[С2]пк |
|
|
2 |
2 |
1 |
8 |
десятичный эквивалент |
|
С3 = (-А) + В
[С3]пк:
|
|
|
|
** |
** - тетрады, где было переполнение |
|
1 |
1010 |
1011 |
0110 |
1101 |
[-А]дк |
|
+ 0 |
0011 |
0010 |
0111 |
0101 |
[В]дк |
|
1 |
1101 |
1101 |
1110 |
0010 |
|
|
+ |
|
|
|
0110 |
коррекция тетрады с переполнением на 6 (0110) |
|
1 |
1101 |
1101 |
1110 |
1000 |
[С3]дк |
|
1 |
0010 |
0010 |
0001 |
0111 |
преобразование в прямой код |
|
+ |
|
|
|
1 |
|
|
1 |
0010 |
0010 |
0001 |
1000 |
[С3]пк |
|
- |
2 |
2 |
1 |
8 |
десятичный эквивалент |
|
С4 = (-А) + (-В)
[С4]пк:
|
|
|
* |
|
* - тетрада, где был перенос. |
|
0 |
0101 |
0100 |
1001 |
0011 |
А |
|
+ 0 |
0011 |
0010 |
0111 |
0101 |
В |
|
0 |
1000 |
0111 |
0000 |
1000 |
|
|
+ |
|
|
0110 |
|
- коррекция в тетраде, где был перенос |
|
0 1 |
1000 1001 |
0111 0111 |
0110 0110 |
1000 1000 |
- |[С4]ПК| -[С4]ПК с учетом знака |
|
- |
8 |
7 |
6 |
8 |
- десятичный эквивалент |
|
Задание 1.2
Ап=-2 Ам=+0,56
Bп=0 Вм=-0,51
Код: обратный
Операция: деление без восстановления остатка.
Решение.
Запишем мантиссу и порядок для числа А и В в двоичной форме в прямом и обратном коде.
[ап]пк = 1.0010,
[ап]мок = 11.1101,
[ам]пк = 0.10001111
[вп]пк = 0.0000,
[вп]мок = 00.0000,
-[вп]мок = 11.1111,
[вм]пк= 1.100000101=1.10000011.
[вм]мок= 11.01111100
-[вм]пк= 0.10000011
-[вм]мок= 00.10000011
Сп*=а п - в п :
|
11.1101 |
[ап]мок |
+ |
11.1111 |
-[вп]мок |
|
11.1101 |
[сп*]мок |
|
11.0010 |
[сп*]мпк |
|
1.0010 |
[сп*]пк |
Абсолютное значение предварительного значения мантиссы:
См*= а м / вм.
Определяемый разряда частного |
Выполняемые действия |
Значение очередного разряда частного |
1 р. (разряд целой части) -1-й такт |
00.10001111 +00.10000011 01.00010010 10.00100100 |
0 |
2 р. (старший разряд модуля) -2-й такт
3 р. - 3-й такт |
+11.01111100 01.10100000 11.01000000
+11.01111100 10.10111100 01.01111000 |
0
1 |
4 р.- 4-й такт |
+00.10000011 01.11111011 11.11110110 |
0 |
5 р. - 5-й такт |
+11.01111100 11.01110010 10.11100100 |
0 |
6 р. - 6-й такт |
+11.01111100 10.01100000 00.11000000 |
1 |
|
+00.10000011 01.01000011 10.10000110 |
0 |
|
+11.01111100 10.00000010 00.00000100 |
1 |
|
+00.01111100 00.10000111 01.00001110 |
1 |
|
+00.01111100 01.10010001 |
0 |
Таким образом:
[см*]пк = 0.010010110
с учетом округления и знака:
[см*]пк = 1.01001011
[см]пк = 1.01001011 [сп]пк = 1.0010