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

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

ПОИТ (д.), ОКТ, Контрольная работа №2, вар.7, 2016
Подробности о скачивании 16.10.2016, 14:42
Задание 1.1.
Найти значения С1, С2, С3, С4, определяемые выражениями:
С1 = А + В;
С2 = А – В;
С3 = В – А;
С4 = -А – В;
где А = 3275 и В = -2387.
При выполнении задания операнды А и В необходимо представить в двоично-десятичной системе, сформировать для них прямые коды и, используя обратный код, найти значения С1, С2, С3, С4. Результат представить в прямом коде.

Решение.
Двоично-десятичный код для чисел А и Б:
А2-10 = +0011 0010 0111 0101
В2-10 = - 0010 0011 1000 0111
Прямой, дополнительный и инверсный код для чисел А и В:
X Прямой код ([X]_пк) Инверсный код ([X]_ик) Дополнительный код ([X]_дк)
А 0.0011 0010 0111 0101 0.0011 0010 0111 0101
-А 1.0011 0010 0111 0101 1.1100 1101 1000 1011
B 1.0010 0011 1000 0111 1.1101 1100 0111 1001
-B 0.0010 0011 1000 0111 0.0010 0011 1000 0111
[|А|]_пк = 0.0011 0010 0111 0101,
[|В|]_пк = 0.0010 0011 1000 0111.
Расчет выражений для С1, С2, С3, С4 осуществляется следующим образом:
С1 = А + В.
* * *
00.0011 0010 0111 0101- [А]_мдк
11.1101 1100 0111 1001 - [В]_мик = [В]_мдк + 6,
00.0000 1110 1110 1110
1010 1010 1010 – коррекция
00.0000 1000 1000 1000
[С1]_пк= 0.0000 1000 1000 1000,
[С1]_10= + 0 8 8 8

С2 = А – В.
С3 = В – А.

Так как в выражении С2 и С3 участвуют числа с одинаковыми знаками, верно выражение |C2|=|C3|.

* * *
00.0011 0010 0111 0101 = [|А|]_мпк
00.0010 0011 1000 0111 = [|В|]_мпк
00.0101 0101 1111 1100
0110 0110 - коррекция
00.0101 0110 0110 0010 =[|С2|]_мпк=[|С3|]_мпк

[С2]_пк= 0.0101 0110 0110 0010
[С2]_10= + 5 6 6 2

[С3]_пк= 1.0101 0110 0110 0010
[С3]_10= - 5 6 6 2

С4 = -А – В.

* * *
11.1100 1101 1000 1011 - [-А]_мик = [-А]_мдк + 6,
00.0010 0011 1000 0111 - [-В]_мдк
11.1111 0001 0001 0010
0110 0110 0110 –коррекция,
11.1111 0111 0111 1000

[С4]_пк = 1.0000 1000 1000 1000
[С4]_10 = - 0 8 8 8

Ответ: [С1]_пк = 0.0000 1000 1000 1000, [С2]_пк = 0.0101 0110 0110 0010,
[С3]_пк = 1.0101 0110 0110 0010, [С4]_пк = 1.0000 1000 1000 1000.

Задание 1.2.
Выполнить операцию умножение с младшего разряда множителя со сдвигом промежуточного результата над числами А и В, представленными с плавающей точкой, если
А – {ап = + 4 (порядок А), ам = - 0,54 (мантисса А)},
В – {вп = + 2 (порядок В), вм = - 0,80(мантисса В)}.
При выполнении задания порядки и мантиссы операндов А и В необходимо представить в двоичной системе счисления и сформировать для них прямые коды. Разрядность модуля порядка должна быть равна 3, разрядность модуля мантиссы - 6.
Результат (порядок и мантисса) должен быть представлен в прямом коде в нормализованной форме.
При выполнении операции использовать обратный код.
Решение.
Переведем числа в двоичную систему счисления:
[а_м ]=-〖0,54〗_10;
0,54∙2=1,08(int(0,54∙2)=1 и DF(0,54∙2)=0,08);
0,08∙2=0,16(int(0,08∙2)=0 и DF(rest(0,08∙2)=0,16);
0,16∙2=0,32(int(0,16∙2)=0 и DF(rest(0,16∙2)=0,32);
0,32∙2=0,64(int(0,32∙2)=0 и DF(rest(0,32∙2)=0,64);
0,64∙2=1,28(int(0,64∙2)=1 и DF(rest(0,64∙2)=0,28);
0,28∙2=0,56(int(0,28∙2)=0 и DF(rest(0,28∙2)=0,56);
0,56∙2=1,12(int(0,56∙2)=1 и DF(0,56∙2)=0,12);

С учетом округления получим результат:
[а_м ]=-〖0,54〗_10= 1.100010 + 1 = 1.1000112.

[в_м ]=-〖0,80〗_10;
0,80∙2=1,6(int(0,55∙2)=1 и DF(0,80∙2)=0,6);
0,6∙2=1,2(int(0,6∙2)=1 и DF(rest(0,6∙2)=0,2);
0,2∙2=0,4(int(0,2∙2)=0 и DF(rest(0,2∙2)=0,4);
0,4∙2=0,8(int(0,4∙2)=0 и DF(rest(0,4∙2)=0,8);
0,8∙2=1,6(int(0,8∙2)=1 и DF(rest(0,8∙2)=0,6);
0,6∙2=1,2(int(0,6∙2)=1 и DF(rest(0,6∙2)=0,2);
0,2∙2=0,4(int(0,2∙2)=0 и DF(rest(0,2∙2)=0,4);
С учетом округления получим результат:
[в_м ]=-〖0,80〗_10= 1.110011 + 0 = 1.1100112.

[а_п ]=+4_10=0.〖100〗_2;
[в_п ]=〖+2〗_10=0.〖010〗_2.

Сформируем прямой и обратный коды:
X Прямой код (Х_пк) Обратный код ([X]_ок)
[а_м ] 1.100011
[а_п ] 0.100 0.100
[в_м ] 1.110011
[в_п ] 0.010 0.010

[|а_м |]_пк=0.100011,
[|в_м |]_пк=0.110011.

Знак искомого произведения, представляемого знаком его мантиссы, будет положительный, так как знаки мантисс сомножителей оба отрицательные.
Порядок произведения определяется как сумма порядков сомножителей (сп = ап + вп), а мантисса произведения – как произведение мантисс сомножителей (см = ам * вм). Однако, учитывая то, что при умножении мантисс может произойти нарушение нормализации, в результате указанных действий будет найдено предварительные значения порядка и мантиссы искомого произведения и окончательное значение произведения будет найдено только после устранения нарушения нормализации.
Найдем предварительное значение порядка искомого произведения.
сп = ап + вп:
0.100 - [а_п ]_ок,
0.010 - [b_п ]_ок,
0.110 - [с_п ]_ок= [с_п ]_пк.
Абсолютное значение предварительного значения мантиссы произведения определяется следующим образом:
|с_м |=|а_м |*|в_м |:

00.100011 - |а_м |,
00.110011 - |в_м |,
000000
100011
0100011
100011
01101001
000000
001101001
000000
0001101001
100011
01010011001
100011
011011111001

Таким образом,
[|с_м |]_пк = 0.011011111001,
учитывая, что разрядность модуля мантиссы – 6, с учетом округления имеем:
[|с_м |]_пк = 0.011100.

При формировании мантиссы произведения возможет только один вид нарушения нормализации – нарушение нормализации справа от точки с появлением нуля только в старшем разряде мантиссы.
Мантисса произведения ненормализованная.
Нормализуем мантиссу, сдвинув ее на один разряд влево, а предварительное значение порядка уменьшим на единицу.
[|с_м |]_пк=0.011100→0.111000,

[с_п ]_пк:
00.110 - [с_п ]_мок,
11.110
100.100
1 – учет переноса при суммировании обратных кодов,
00.101 - [с_п ]_мок = [с_п ]_мпк.
После нормализации окончательное значение мантиссы и порядка произведения имеем с учетом ранее полученного знака:
[с_м ]_пк = 0.111000, [с_п ]_мпк = 0.101.

Ответ: С – {сп = 0.101, см = 0.111000}.
Категория: ОКТ | Добавил: Katarzynoczka
Просмотров: 653 | Загрузок: 8
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]