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

котра вар 3

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

Решение:

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

А=549310 ,= 10101011101012, В = - 191110 = -111011101112.

Определим количество разрядов для модульной части записи чисел, учитывая не только значения используемых операндов, но и ожидаемые результаты выполнения заданных операций. Исходя из абсолютного значения операндов разрядность представления модульной части n должна быть равна 13. Учитывая то, что в подлежащих реализации выражениях над числами выполняется только одна операция (или сложения, или вычитания), длину модульной части необходимо взять на один разряд больше, т.е. n = 14.

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

С1= А+В, С2=А+(-В), С3= В+(-А), С4=(-А) +(-В).

Таким образом, в подлежащих реализации выражениях в качестве операндов присутствуют следующие величины: A , -A, B, -B. Представим их в прямом и дополнительном коде

[А]пр = 0. 01010101110101, [А]дк = 0. 01010101110101,

[-А] пр = 1. 01010101110101, [-А] дк = 1. 10101010001011,

[В] пр = 1. 00011101110111, [В] дк = 1. 11100010001001,

[-В] пр = 0. 00011101110111, [-В] дк = 0. 00011101110111.

[-А] пр = 1. 01010101110101.

Найдем запись заданного числа в дополнительном коде:

[-А] д : для определения модульной части прибавим к невключенной границе диапазона ( 2n = 214 = 100000000000000) число В:

100000000000000 +(-1010101110101) = 10101010001011

и тогда [-А] д = 1. 10101010001011.

[В] пр = 1. 00011101110111.

Найдем запись заданного числа в дополнительном коде:

[В] д : для определения модульной части прибавим к невключенной границе диапазона ( 2n = 214 = 100000000000000) число В:

100000000000000 +(-11101110111) = 11100010001001

и тогда [В] д = 1. 11100010001001.

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

С1: 0. 01010101110101 - [A] дк

+ 1. 11100010001001 - [B] дк

10.00110111111110 - [C1] дк=[C1] ПК

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

С2: 0. 01010101110101 - [A] дк

+ 0. 00011101110111 - [-B] дк

0.01110011101100 - [C2] дк =[C2] пк

С3: 1. 11100010001001 - [-A] дк

+ 1. 10101010001011 - [B] дк

1 1.10001100010100 - [C3] дк

1.01110011101100 - [C3] пк.

С4: 1. 10101010001011 - [-A] дк

+ 0. 00011101110111 - [-B] дк

1.11001000000010 - [C4] дк

1.00110111111110 - [C4] ПК

В данном случае также возникло переполнение знакового поля, которое игнорируется.

2.

Решение:

Задание 1.2

А

В

порядок

мантисса

порядок

мантисса

з

аз

з

аз

з

аз

з

аз

код

опер

-

2

-

0.56

0

+

0.51

о

-

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

где [а п] = -0102, [а м] =-0.1000112,

п] = 0002, м] = 0.1000002.

Представим порядки и мантиссы в прямом коде:

п]пр = 1.010, [а м]пр =1.100011,

п]пр = 0.000, м]пр = 0.100000.

При выполнении операции необходимо использовать обратный код.

п]о: модульная часть: (23-1) + (-010) = 101, тогда [а п]о= 1.101

п]о = 0.000.

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

С1= А+(-В).

[-в п]о: модульная часть: (23-1) + (-000) = 111, тогда [-в п]о= 1.111.

Выравнивание порядков: из порядка первого числа вычитаем порядок второго числа:

1.101 [а п]о

1.111 [-в п]о

1.100 – разность порядков в обратном коде,

1.010 - разность порядков в прямом коде.

Так как знак разности порядков отрицательный, то в качестве общего порядка, а следовательно, и предварительного значения порядка искомого результата С1п`, берется порядок второго числа (вп). Для того чтобы взять в качестве порядка первого числа порядок второго числа, т.е. увеличив его порядок на 2, необходимо мантиссу этого меньшего числа умножить на 2-2, т.е. выполнить её арифметический сдвиг на два разряда вправо.

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

м`] пр = 1.001000,

м`] пр = 0.100000.

После выравнивания порядков можно определить предварительное значение мантиссы С1` как

С1`=[а м`] пр - [в м`]пр.

м`]о: модульная часть: (26-1) + (-001000) = 110111, тогда [а м`]о= 1.110111

Избавляясь от операции вычитания, приводим выражение С1`=[а м`] пр - [в м`]пр к виду С1`=[а м`] пр + [-в м`]пр.

[-в м`]о: модульная часть: (26-1) + (-100000) = 011111, тогда [-в м`]о = 1. 011111.

11.110111 -[а м`] о

+ 1 1.011111 -[-в м`]о

111.010110 - [С1`]о.

10.101000 - [С1`]пр,.

Из записи [С1`]дк, полученной после вычитания мантисс операндов с выровненными порядками, видно, что нормализация представления результата нарушена. Поэтому для данного примера необходимо выполнить этап устранения нарушения нормализации.

В данном случае нарушение нормализации слева от точки, так как получено [С1`]пк с ненулевой целой частью. Для того чтобы привести полученную предварительную мантиссу к нормализованной форме, достаточно её разделить на 2, то есть выполнить её арифметический сдвиг вправо. В результате будем иметь окончательное значение мантиссы:

С1 = С1` *2-1=10.101000*2-1= 11.110100.

Деление мантиссы С1` на 2 сопровождается изменением ранее найденного предварительного значения порядка результата С1п` на +1.

00.000 [с1 п] пр `

+ 00.001 +1

00.001 [с1 п] пр

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

С1{ [c1 п ] пр =00.001, [c1 м ] пр = 11.110100}.

Задание 2.1

Задание 2.2

вар

ТТ

ТЦА

ГСА

Y

X

ёмкость ЗУ

нач. адрес МП

ГСА

D

Мура

Рис.3

100

15

2000

530

Рис.1

х5

Рис.3

Рис.1