
- •1. Методические указания
- •2. Контрольные вопросы
- •3. Задание к лабораторной работе
- •5. Содержание отчета
- •1. Методические указания
- •2. Контрольные вопросы
- •3. Задание к лабораторной работе
- •Содержание отчета
- •1. Методические указания
- •2. Контрольные вопросы
- •3. Задание к лабораторной работе
- •4. Содержание отчета
2. Контрольные вопросы
Основные способы умножения чисел с фиксированной точкой.
Основные алгоритмы умножения чисел с фиксированной точкой.
Умножение прямого кода на 2±k.
Умножение обратного и дополнительного кодов на 2±k.
Умножение дополнительных кодов.
Умножение обратных кодов.
Умножение чисел, представленных в форме с плавающей точкой.
Операционные элементы устройств для умножения чисел с фиксированной точкой.
Микрооперации и логические условия в устройствах умножения чисел с фиксированной точкой.
3. Задание к лабораторной работе
Используя данные таблицы 2.1, вычислить произведения чисел ±x и ±y с двойной точностью, если длина разрядной сетки операндов без учета знаковых разрядов равна 4-м двоичным разрядам. Процесс вычислений нужно представить в трассировочных таблицах следующего вида:
Микрооперация / логическое условие |
Состояние операционного элемента |
|||
РгМт |
РгМн |
НСМ |
СчТ |
После вычислений проверить правильность полученных результатов.
Для ситуаций, отмеченных в таблице 2.1 звездочкой, построить структурную схему и микропрограмму операционного устройства умножения.
Используя данные таблицы 2.2, вычислить произведение X и Y, представленных в форме с плавающей запятой. Длина мантиссы в прямом коде без знака – 4 двоичных разряда, длина порядка в прямом коде без знака – 3 двоичных разряда, основание характеристики равно 2. оценить погрешность произведения, вызванную ограниченной длиной разрядной сетки.
Содержание отчета
Титульный лист.
Алгоритмы умножения.
Результаты выполнения заданий к лабораторной работе.
Разделы 1, 2 студент должен выполнить при подготовке к лабораторной работе.
Таблица 2.1
Варианты заданий к лабораторной работе 2
№ п/п |
X |
Y |
Алгоритм / код |
|||
X∙Y |
X∙(-Y) |
-X∙Y |
(-X)∙(-Y) |
|||
1 |
0.96 |
0.39 |
1/ПК* |
2/МОК |
3/МОК |
4/МДК |
2 |
0.41 |
0.94 |
2/ПК* |
3/МДК |
4/МДК |
1/МОК |
3 |
0.92 |
0.43 |
3/ПК* |
4/МОК |
1/МОК |
2/МДК |
4 |
0.45 |
0.90 |
4/ПК* |
1/МДК |
2/МДК |
3/МОК |
5 |
0.88 |
0.47 |
1/ПК |
2/МОК* |
3/МОК |
4/МДК |
6 |
0.49 |
0.86 |
2/ПК |
3/МДК* |
4/МДК |
1/МОК |
7 |
0.84 |
0.51 |
3/ПК |
4/МОК* |
1/МОК |
2/МДК |
8 |
0.53 |
0.82 |
4/ПК |
1/МДК* |
2/МДК |
3/МОК |
9 |
0.80 |
0.55 |
1/ПК |
2/МОК |
3/МОК* |
4/МДК |
10 |
0.57 |
0.78 |
2/ПК |
3/МДК |
4/МДК* |
1/МОК |
11 |
0.76 |
0.59 |
3/ПК |
4/МОК |
1/МОК* |
2/МДК |
12 |
0.61 |
0.74 |
4/ПК |
1/МДК |
2/МДК* |
3/МОК |
13 |
0.72 |
0.63 |
1/ПК |
2/МОК |
3/МОК |
4/МДК* |
14 |
0.65 |
0.70 |
2/ПК |
3/МДК |
4/МДК |
1/МОК* |
15 |
0.68 |
0.67 |
3/ПК |
4/МОК |
1/МОК |
2/МДК* |
16 |
0.69 |
0.66 |
4/ПК |
1/МДК |
2/МДК |
3/МОК* |
17 |
0.64 |
0.71 |
1/ПК* |
2/МОК |
3/МОК |
4/МДК |
18 |
0.73 |
0.62 |
2/ПК |
3/МДК* |
4/МДК |
1/МОК |
19 |
0.60 |
0.75 |
3/ПК |
4/МОК |
1/МОК* |
2/МДК |
20 |
0.77 |
0.58 |
4/ПК |
1/МДК |
2/МДК |
3/МОК* |
21 |
0.56 |
0.79 |
1/ПК |
2/МОК* |
3/МОК |
4/МДК |
22 |
0.81 |
0.54 |
2/ПК* |
3/МДК |
4/МДК |
1/МОК |
23 |
0.52 |
0.83 |
3/ПК |
4/МОК |
1/МОК* |
2/МДК |
24 |
0.85 |
0.51 |
4/ПК |
1/МДК |
2/МДК* |
3/МОК |
25 |
0.48 |
0.87 |
1/ПК |
2/МОК |
3/МОК |
4/МДК* |
Таблица 2.2
Варианты заданий к лабораторной работе 2
№ п/п |
X |
Y |
Алгоритм |
№ п/п |
X |
Y |
Алгоритм |
1 |
4,37 |
9,84 |
4 |
14 |
3,64 |
4,89 |
4 |
2 |
9,32 |
5,41 |
3 |
15 |
6,64 |
5,09 |
1 |
3 |
8,51 |
5,29 |
1 |
16 |
4,02 |
1,18 |
2 |
4 |
6,99 |
1,92 |
2 |
17 |
1,99 |
7,53 |
3 |
5 |
5,16 |
6,43 |
3 |
18 |
5,63 |
7,17 |
4 |
6 |
1,67 |
4,13 |
4 |
19 |
7,83 |
3,05 |
1 |
7 |
7,12 |
3,16 |
1 |
20 |
6,02 |
6,27 |
2 |
8 |
3,97 |
3,98 |
2 |
21 |
2,21 |
3,63 |
3 |
9 |
8,87 |
6,43 |
3 |
22 |
5,44 |
9,88 |
4 |
10 |
1,09 |
6,47 |
4 |
23 |
7,36 |
1,13 |
1 |
11 |
1,26 |
7,14 |
1 |
24 |
8,06 |
3,88 |
2 |
12 |
8,56 |
5,14 |
2 |
25 |
1,12 |
2,81 |
3 |
13 |
2,74 |
7,39 |
3 |
|
|
|
|
Примеры решения алгоритмов умножения
Вычислить x*y в прямом коде по алгоритму 1.
Микрооперация / логическое условие |
Состояние операционных элементов |
|||
РгМт |
РгМн |
НСМ |
СчТ |
|
Установка |
0.1000 |
0.1110 |
0.00000000 |
4 |
НСМ[8].(0.R1(НСМ[0:7])) РгМт[5].(0.R1 [0:4]) |
0.0100 |
0.1110 |
0.00000000 |
3 |
НСМ[8].(0.R1(НСМ[0:7])) РгМт[5].(0.R1 [0:4]) |
0.0010 |
0.1110 |
0.00000000 |
2 |
НСМ[8].(0.R1(НСМ[0:7])) РгМт[5].(0.R1 [0:4]) |
0.0001 |
0.1110 |
0.00000000 |
1 |
Результат |
0.0000 |
0.1110 |
0.01110000 |
0 |
Вычислить x*(-y) в обратном коде по алгоритму 2.
-0.4710=1.10002пк=1.01112ок
Микрооперация / логическое условие |
Состояние операционных элементов |
|||
РгМт |
РгМн |
НСМ |
СчТ |
|
Установка |
1.0111 |
0.00001110 |
0.00000000 |
4 |
РгМн[8].(L1(РгМн[0:7]).0) РгМт[5].(1.R1[0:4]) |
1.1011 |
0.00011100 |
0.00001110 |
3 |
РгМн[8].(L1(РгМн[0:7]).0) РгМт[5].(1.R1[0:4]) |
1.1101 |
0.00111000 |
0.00101010 |
2 |
РгМн[8].(L1(РгМн[0:7]).0) РгМт[5].(1.R1[0:4]) |
1.1110 |
0.01110000 |
0.01100010 |
1 |
Результат |
1.1111 |
0.11100000 |
0.01100010 |
0 |
Коррекция результата
0 0 1 1 0 0 0 1 0
0 0 0 0 0 1 1 1 0
0 0 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1
1 1 0 0 0 1 1 1 1
1 0 1 1 1 0 0 0 0
Вычислить (-x)*y в обратном коде по алгоритму 3.
Микрооперация / логическое условие |
Состояние операционных элементов |
|||
РгМт |
РгМн |
НСМ |
СчТ |
|
Установка |
0.1000 |
1.0001 |
0.00000000 |
4 |
НСМ[8].(L1(НСМ[0:7]).1) РгМт[5].(L1[0:4].0) |
0.0000 |
1.0001 |
1.11100011 |
3 |
НСМ[8].(L1(НСМ[0:7]).1) РгМт[5].(L1[0:4].0) |
0.0000 |
1.0001 |
1.11000111 |
2 |
НСМ[8].(L1(НСМ[0:7]).1) РгМт[5].(L1[0:4].0) |
0.0000 |
1.0001 |
1.10001111 |
1 |
Результат |
0.0000 |
1.0001 |
1.10001111 |
0 |
Вычислить (-x)*(-y) в дополнительном коде по алгоритму 4.
Микрооперация / логическое условие |
Состояние операционных элементов |
|||
РгМт |
РгМн |
НСМ |
СчТ |
|
Установка |
1.1000 |
1.10010000 |
0.00000000 |
4 |
РгМн[8].(1.R1(РгМн[0:7])) РгМт[5].(L1[0:4].0) |
1.0000 |
1.11001000 |
1.10010000 |
3 |
РгМн[8].(1.R1(РгМн[0:7])) РгМт[5].(L1[0:4].0) |
1.0000 |
1.11100100 |
1.10010000 |
2 |
РгМн[8].(1.R1(РгМн[0:7])) РгМт[5].(L1[0:4].0) |
1.0000 |
1.11110010 |
1.10010000 |
1 |
Результат |
1.0000 |
1.11111001 |
1.10010000 |
0 |
Коррекция результата
1 1 0 0 1 0 0 0 0
0 1 1 1 0 0 0 0 0
0 0 1 1 1 0 0 0 0
Часть №3
АЛГОРИТМЫ ДЕЛЕНИЯ ДВОИЧНЫХ ЧИСЕЛ
Цель работы: приобретение практических навыков деления двоичных чисел в прямом, обратном и дополнительном кодах.