bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [157]
АВС [6]
КПиЯП [80]
ОАиП [305]
ОКТ [79]
СиСПО [8]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ПОИТ » ОКТ

ПОИТ (д.), ОКТ, Контрольная работа №1, вар.3, 2015
Подробности о скачивании 23.11.2015, 00:08
1). Задание 1
Найти значения С1,С2, С3, С4, определяемые выражениями:
С1 = А + В, С2 = А – В, С3 = В – А, С4 = – А – В,
где А = +5493, В = -1911.
При выполнении задания операнды А и В необходимо представить в двоично-десятичной системе, сформировать для них прямые коды и, используя дополнительный код по правилам двоично-десятичной арифметики найти значения С1, С2, С3, С4.
Результат представить в прямом коде.

Решение:
А = + 0101 0100 1001 0011 – А = – 0101 0100 1001 0011
В = – 0001 1001 0001 0001 – В = + 0001 1001 0001 0001

Найдем прямые и дополнительные (+6) двоично-десятичные коды для чисел А, -А, В, -В:
[А]ПК = [А]ДК = 0. 0101 0100 1001 0011;
[-А]ПК = 1. 0101 0100 1001 0011;
[-А]ИК = 1. 1010 1011 0110 1100; инверсный код
[-А]ИК+1 = 1. 1010 1011 0110 1100 [-А]ИК
+ 0001 коррекция для доп. кода
1. 1010 1011 0110 1101
[-А]ДК +6 = [-А]ИК+1 = 1. 1010 1011 0110 1101;

[В]ПК = 1. 0001 1001 0001 0001;
[В]ИК = 1. 1110 0110 1110 1110; инверсный код
[В]ИК+1 = 1. 1110 0110 1110 1110 [В]ИК
+ 0001 коррекция для доп. кода
1. 1110 0110 1110 1111
[В]ДК +6 = [В]ИК+1 = 1. 1110 0110 1110 1111;
[-В]ПК = [-В]ДК = 0. 0001 1001 0001 0001.

Используя дополнительные коды +6 по правилам двоично-десятичной арифметики найти значения С1, С2, С3, С4:

С1 = А + В;
[С1]ПК:
0. 0101 0100 1001 0011 – [А]ДК
+ 1. 1110 0110 1110 1111 – [В]ДК+6
10.0011 1011* 1000 0010 – т.к. используем дополнительный код,
то переполнение знакового поля
игнорируем; результат положитель- ный
+ 1010 – добавление десяток в тетрады, где
не было переноса* (переводим до-
полнительный код + 6 в прямой код)
0.0011 0101 1000 0010 – коррекцию произвели без распростра- нения единицы в старший разряд.
[С1]ПК = 0.0011 0101 1000 0010 – [35822].

С4 = – А – В = (-А) + (-В);
[С4]ПК:
1. 1010 1011 0110 1101 – [-А]ДК+6
+ 0. 0001 1001 0001 0001 – [-В]ДК
1.1100 0100* 0111 1110 – результат отрицательный;
+ 0110 – добавление шестерок в тетрады, где
был перенос*;
1.1100 1010 0111 1110 – [С4]ДК+6 = [С4]ИК+1
(1.0011 0101 1000 0001 – [С4]ПК-1)
1.0011 0101 1000 0010 – [С4]ПК
[С4]ПК = 1.0011 0101 1000 0010 – [-35822].

С2 = А – В = А + (-В);
С3 = В – А = В + (-А);
|С2| = |С3|:
0. 0101 0100 1001 0011 –[|А|]ДК
+ 0. 0001 1001 0001 0001 – [|В|]ДК
0. 0110 1101* 1010* 0100 – * переполнение тетрад;
+ 0110 0110 – добавление шестерок в тетрады, где,
значения больше девяти;
0.0111 0100 0000 0100 – коррекцию произвели с переносом единицы в старший разряд.
[|С2|]ПК = [|С3|]ПК = 0.0111 0100 0000 0100 – [74042].

Присвоение сумме знака:
С2 = А – В = А + (-В) – сумма положительных чисел;
[С2]ПК = [|С2|]ПК = 0.0111 0100 0000 0100 – [74042]

С3 = В – А = В + (-А) – сумма отрицательных чисел;
[С2]ПК = - [|С2|]ПК = 1.0111 0100 0000 0100 – [-74042]

2) Задание 2
Выполнить операцию вычитания над числами А и В, представленными с плавающей точкой. Использовать двоичный обратный код.
А: {ап = -2 (порядок А), ам = -0,56 (мантисса А)}.
В: {bп = 0 (порядок b), bм = +0,51 (мантисса b)}.
Мантиссы операндов А и В необходимо представить в двоичной системе счисления и сформировать для них прямые коды. Разрядность модуля порядка должна быть равно 3, разрядность модуля мантиссы – 6.
Результат (порядок и мантисса) должен быть представлен в прямом коде в нормализованной форме.

Решение:
А – В = А + (-В).
Представим числа А и В в двоичной системе счисления
Найдем мантиссу А2 методом преобразования весов разрядов:
-2-1 = -0,5 [А2]м = -0,1 -0,56 – (-0,5) = -0,06;
-2-2 = -0,25 [А2]м = -0,10 -0,06 – 0 = -0,06;
-2-3 = -0,125 [А2]м = -0,100 -0,06 – 0 = -0,06;
-2-4 = -0,0625 [А2]м = -0,1000 -0,06 – 0 = -0,06;
-2-5 = -0,03125 [А2]м = -0,10001 -0,06 – (-0,03125) = -0,02875;
-2-6 = -0,015625 [А2]м = -0,100011 -0,02875 – (-0,015625) ≈ -0,013;
-2-7 ≈ -0,0078 [А2]м = -0,100011 1 -0,013 – (-0,0078) = -0,0052;
С учетом округления получаем [А2]м = -0,100100

Найдем мантиссу В2 методом умножения на новое основание:
0,51*2 = 1,02 int(0,51*2) = 1 DF(0,51*2) = 0,02;
0,02*2 = 0,04 int(0,02*2) = 0 DF(0,02*2) = 0,04;
0,04*2 = 0,08 int(0,04*2) = 0 DF(0,04*2) = 0,08;
0,08*2 = 0,16 int(0,08*2) = 0 DF(0,08*2) = 0,16;
0,16*2 = 0,32 int(0,16*2) = 0 DF(0,16*2) = 0,32;
0,32*2 = 0,64 int(0,32*2) = 0 DF(0,32*2) = 0,64;
0,64*2 = 1,28 int(0,64*2) = 1 DF(0,64*2) = 0,28;
[В2]м = 0,100000 1, с учетом округления [В2]м = 0,100001.

Представим в прямом коде порядки и мантиссы чисел А, В и -В:
[Ап]ПК = 1.010, [Ам]ПК = 1.100100;
[Вп]ПК = 0.000, [Вм]ПК = 0.100001;
[-Вп]ПК = 0.000, [-Вм]ПК = 1.100001.

Представим порядки и мантиссы чисел А, В и –В в обратном коде:
[Ап]ОК = 1.101, [Ам]ОК = 1.011011;
[Вп]ОК = [Вп]ПК = 0.000, [Вм]ОК = [Вп]ПК = 0.100001;
[-Вп]ОК = [-Вп]ПК = 0.000, [-Вм]ОК = 1.011110.
Выравняем порядки чисел А и В, для этого из порядка первого числа вычтем порядок второго:
1.101 [Ап]ОК;
+0.000 [-Вп]ОК;
1.101 – разность порядков в обратном коде;
1.010 – разность порядков в прямом коде.
Так знак разности порядков отрицательный, то в качестве общего порядка берется порядок второго числа Вп. Для выравнивания порядков порядок меньшего числа А увеличиваем на 2, для этого мантиссу меньшего числа А умножаем на 2-2, то есть выполняем ее арифметический сдвиг на два разряда вправо в обратном коде. Для этого сдвигаем вправо только модульную часть, а в освобожденные разряды устанавливаем единицы:
[Ам]ОК = 1.011011 → [Ам]ОК = 1.110110 ([Ап]ОК = 0.000).
После выравнивания порядков определяем предварительное значение мантиссы С, как [С’м]ОК = [Ам]ОК – [Вм]ОК = [Ам]ОК + [-Вм]ОК:
11.110110 [Ам]мОК
+11.011110 [-Вм]мОК
111.010100
+ 1
11.010101 [С’м]мОК
Одинаковые разряды в поле знака модифицированного кода свидетельствуют об отсутствии переполнения (получена мантисса С’ с нулевой целой частью). В то же время первый разряд в обратном коде равен нулю (в прямом коде он равен единице). Выполнение этих двух условий позволяет сказать, что мантисса С’ получена в нормализованной форме, отсюда следует:
[С’м]ОК = 1.010101;
[См]ОК = [С’м]ОК = 1.010101;
Представим найденное число С = А – В в прямом коде в нормализованном виде:
[См]ПК = 0.000, [См]ПК = 1.101010.
Категория: ОКТ | Добавил: Yulia
Просмотров: 1103 | Загрузок: 11
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]