Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кр№1, вар. 13

.docx
Скачиваний:
22
Добавлен:
01.04.2014
Размер:
22.52 Кб
Скачать

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Факультет: НиДО

Специальность: ПОИТ

КОНТРОЛЬНАЯ РАБОТА №1

по ОСНОВАМ КОМПЬЮТЕРНОЙ ТЕХНИКЕ

Вариант № 13

Выполнил студент:

Группа:

Зачетная книжка:

Электронный адрес:

Минск 2011

Задание 1.1

Найти двоично-десятичные значения C1, C2, C3, C4, определяемые соответственно выражениями:

С1= А+В, С2=А-В, С3= В-А, С4=-А-В, используя модифицированный дополнительный код,

если

А = +669 и B = +8788.

Результат представить в прямом коде.

Решение.

Сформируем для заданных чисел прямой, модифицированный дополнительный и инверсный код.

[A]пк = 0.0000 0110 0110 1001

[B]пк = 0.1000 0111 1000 1000

[A]мдк = 00.0000 0110 0110 1001

[B]мдк = 00.1000 0111 1000 1000

[-A]пк = 1.0000 0110 0110 1001

[-B]пк = 1.1000 0111 1000 1000

[-A]мик = 11.1111 1001 1001 0111

[-B]мик = 11.0111 1000 0111 1000

Абсолютные значения операндов имеют вид:

[|A|]пк = 0.0000 0110 0110 1001

[|B|]пк = 0.1000 0111 1000 1000

Формирование С1 и С4, в выражениях которых в операции сложения принимают участие числа с одинаковыми знаками, осуществляется за счет сложения абсолютных значений операндов с последующим присвоением полученной суммы знака одного из операндов.

Таким образом, для определения С1 и С4 выполняются следующие действия:

С1 = С4:

00.0000 0110 0110 1001 - [|A|]пк

00.1000 0111 1000 1000 - [|B|]пк

00.1000 1101 1111 0001

0110 0110 0110 - коррекция

00.1001 0100 0101 0111 - С1 = С4

Таким образом,

[С1]пк = 0.1001 0100 0101 0111

С110 = + 9 4 5 7

[С4]пк = 1.1001 0100 0101 0111

С410 = - 9 4 5 7

[С2]пк = А + (-В):

00.0000 0110 0110 1001 - [A]мдк

11.0111 1000 0111 1000 - [-B]мик = [-B]мдк + 6

11.0111 1110 1110 0001

0110 - коррекция

11.0111 1110 1110 0111

[С2]пк = 1.1000 0001 0001 1001

С210 = - 8 1 1 9

[С3]пк = В + (-А):

00.1000 0111 1000 1000 - [B]мдк

11.1111 1001 1001 0111 - [-A]мик

00.1000 0001 0001 1111

1010 - коррекция

00.1000 0001 0001 1001

[С3]пк = 0.1000 0001 0001 1001

С310 = + 8 1 1 9

Ответ: [С1]пк = 0.1001 0100 0101 0111, [С2]пк = 1.1000 0001 0001 1001, [С3]пк = 0.1000 0001 0001 1001, [С4]пк = 1.1001 0100 0101 0111.

Задание 1.2

Задание предполагает выполнение заданной операции над числами А и В, представленными с плавающей точкой.

При выполнении задания порядки и мантиссы операндов А и В необходимо представить в двоичной системе счисления и сформировать для них прямые коды. Разрядность модуля порядка должна быть равна 3, разрядность модуля мантиссы - 6 .

Результат (порядок и мантисса) должен быть представлен в прямом коде в нормализованной форме.

При выполнении операций использовать обратный код. При умножении мантисс использовать метод умножения, начиная с младшего разряда множителя со сдвигом множителя.

Решение.

Найти произведение С чисел А и В, представленных с плавающей точкой, если А и В представлены в виде порядков, соответственно [Ап]пк и [Вп]пк и мантисс, соответственно [Ам] пк и [Вм] пк, где

п]пк = , [А м]пк = ,

п]пк = , м]пк= .

Переведем числа в двоичную систему счисления, учитывая, что разрядность модуля порядка должна быть равна 3, разрядность модуля мантиссы – 6:

При преобразовании дробных чисел, учитывая округление, найдем предварительный двоичный эквивалент с семью разрядами:

0.7 * 2 = 1.4 (int(0.7 * 2) = 1 и DF (0.7 * 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.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.9 * 2 = 1.8 (int(0.9 * 2) = 1 и DF(0.9 * 2) = 0.8);

0.8 * 2 = 1.6 (int(0.8 * 2) = 1 и DF(0.8 * 2) = 0.6);

0.6 * 2 = 1.2 (int(0.6 * 2) = 1 и DF(0.6 * 2) = 0.2);

0.2 * 2 = 0.4 (int(0.2 * 2) = 0 и DF(0.2 * 2) = 0.4);

0.4 * 2 = 0.8 (int(0.4 * 2) = 0 и DF(0.4 * 2) = 0.8);

0.8 * 2 = 1.6 (int(0.8 * 2) = 1 и DF(0.8 * 2) = 0.6);

0.6 * 2 = 1.2 (int(0.6 * 2) = 1 и DF(0.6 * 2) = 0.2).

С учетом округления:

.

Представим числа в модифицированном обратном коде:

Знак искомого произведения, представляемого знаком его мантиссы, отрицательный, так как знаки мантисс сомножителей неодинаковые.

Предварительное значение порядка произведения определяется посредством суммирования порядков сомножителей (Сп п + В п):

00.010 -

11.101 -

11.111 -

0.000 -

Абсолютное значение предварительного значения мантиссы произведения определяется как произведение мантисс операндов (:

00.101101 -

00.111010 -

000000 - начальное значение частичного произведения

000000 - 1-й младший разряд равен нулю

000000 - формирование частичного произведения

101101 - 2-й младший разряд равен единице

1011010 - формирование частичного произведения

000000 - 3-й младший разряд равен нулю

01011010 - формирование частичного произведения

101101 - 4-й младший разряд равен единице

111000010 - формирование частичного произведения

101101 - 5-й младший разряд равен единице

10010010010 - формирование частичного произведения

101101 - 6-й младший разряд равен единице

101000110010 - результат произведения

Таким образом, с учетом округления имеем:

= 00.101001.

.

При формировании мантиссы произведения нормализованных чисел с плавающей точкой возможен только один вид нарушения нормализации - нарушение нормализации справа от точки с появлением нуля только в старшем разряде мантиссы.

Таким образом, в мантиссе произведения нормализация не нарушена.

Запишем окончательное значение мантиссы и порядка произведения, с учетом ранее полученного знака:

;

.

Ответ: ,

Соседние файлы в предмете Основы компьютерной техники