Часть1 РАБОТА С ДВОИЧНЫМИ ЧИСЛАМИ И ВЫПОЛНЕНИЕ АРИФМИТИЧЕСКИХ ОПЕРАЦИЙ НАД НИМИ

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

 

РАБОТА С ДВОИЧНЫМИ ЧИСЛАМИ И ВЫПОЛНЕНИЕ АРИФМИТИЧЕСКИХ ОПЕРАЦИЙ НАД НИМИ

 

Часть1

АЛГЕБРАИЧЕСКОЕ СЛОЖЕНИЕ ДВОИЧНЫХ ЧИСЕЛ

 

 

Цель работы: приобретение практических навыков применения методов кодирования и алгебраического сложения двоичных чисел.

 

 

1. Методические указания

 

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

Знание форм представления и кодирования чисел имеет фундаментальное значение для понимания принципов обработки информации в ЭВМ. Алгебраическое сложение чисел в обратном и дополнительном кодах является в дальнейшем базовой операцией при выполнении операций умножения и деления. Правила, применяемые при алгебраическом сложении кодов чисел, имеют строгое теоретическое обоснование, которое необходимо знать студентам.

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

При подготовке к работе рекомендуется использовать литературу [1, с. 20-49].

 

 

2. Контрольные вопросы

 

1) Система счисления.

2) Позиционные и непозиционные системы счисления.

3) Основные системы счисления.

4) Представление чисел в виде полинома.

5) Перевод чисел из одной системы счисления в другую.

6) Формы представления чисел в ЭВМ.

7) Диапазон представления чисел в заданной разрядной сетке.

8) Прямой, обратный и дополнительный коды для представления чисел в ЭВМ.

9) Связь обратного и дополнительного кодов.

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

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

12) Признаки переполнения разрядной сетки при алгебраическом сложении чисел в ЭВМ.

13) Модифицированные коды для представления чисел в ЭВМ.

14) Алгебраическое сложение чисел в модифицированных кодах.

15) Признаки переполнения разрядной сетки в модифицированных кодах в ЭВМ.

 

 

3. Задание к лабораторной работе

 

1) Используя данные таблицы 1.1, найти алгебраические суммы ±а, ±в в обратном и дополнительном кодах, если длина разрядной сетки равна l двоичных разрядов. Сделать выводы о наличии или отсутствии переполнения. Проверить результат переводом в десятичную систему счисления. Оценить погрешность результата.

2) Используя данные таблицы 1.1, найти алгебраические суммы ±x, ±y в модифицированных обратном и дополнительном кодах, если длина разрядной сетки равна l двоичных разрядов. Сделать выводы о наличии или отсутствии переполнения.

3) Оценить диапазон представления чисел с плавающей запятой, если для представления мантиссы отведено n двоичных разрядов, для представления порядка – m двоичных разрядов, основание характеристики равно S. Исходные данные приведены в таблице 1.1.

 

4. Пример выполнения сложения чисел в обратном и дополнительном кодах.

 

Пусть а = 0,74; b = -0,39; l = 7

Переводим числа в двоичный код:

0,74*2=1,48 0,39*2=0,78

0,48*2=0,96 0,78*2=1,56

0,96*2=1,92 0,56*2=1,12

0,92*2=1,84 0,12*2=0,24

0,84*2=1,68 0,24*2=0,48

0,68*2=1,36 0,48*2=0,96

0,36*2=0,72 0,96*2=1,92

Т.к. а>0, то прямой код будет равен обратному и дополнительному коду, таким образом

а пр.код = 0.1011110 а обр.код = 0.1011110 а доп.код = 0.1011110

пр.код = 1.1011110 -а обр.код = 1.0100001 -а доп.код = 1.0100010

 

Т.к. b<0, обратный код будет равен инверсии прямого кода; дополнительный код равен обратному коду +1.

b пр.код = 1.0110001 b обр.код = 1.1001110 b доп.код = 1.1010010

-b пр.код = 0.0110001 - b обр.код = 0.0110001 - b доп.код = 0.0110001

 

 

5. Содержание отчета

 

1) Титульный лист.

2) Определение кодов для представления чисел в ЭВМ.

3) Правила выполнения алгебраического сложения над кодированными числами.

4) Признаки переполнения разрядной сетки при алгебраическом сложении.

5) Результаты выполнения задания к лабораторной работе.

Разделы 1), 2), 3), 4) студенты должны выполнить при подготовке к лабораторной работе.

 

Таблица 1.1

Варианты заданий к лабораторной работе

 

№ п/п а в l x y n m S
-0.37 0.68 0.15 0.96
0.83 -0.19 0.17 0.84
-0.27 0.99 0.35 0.88
0.95 -0.11 0.33 0.79
-0.35 0.90 0.47 0.69
0.79 -0.30 0.77 0.63
-0.07 0.97 0.81 0.45
0.81 0.29 0.56 0.99
-0.75 0.65 0.68 0.37
0.81 -0.26 0.19 0.83
-0.69 0.57 0.99 0.27
-0.45 0.72 0.11 0.95
0.93 -0.94 0.90 0.35
-0.81 0.30 0.79
0.97 -0.64 0.97 0.07
0.79 -0.77 0.29 0.81
-0.43 0.82 0.65 0.75
0.89 -0.16 0.26 0.81
-0.95 0.23 0.57 0.69
0.74 -0.39 0.77 0.79
-0.66 0.73 0.72 0.45
0.64 -0.85 0.94 0.93
-0.96 0.15 0.59 0.81
0.84 -0.17 0.64 0.97
-0.88 0.35 0.82 0.43

 

 

Часть №2

АЛГОРИТМЫ УМНОЖЕНИЯ ДВОИЧНЫХ ЧИСЕЛ

 

 

Цель работы: приобретение практических навыков умножения двоичных чисел в прямом, обратном и дополнительном кодах.

 

 

Методические указания

Студентам следует знать, что наиболее известными и простыми являются два основных способа выполнения операции умножения чисел в форме с… - умножение с младших разрядов множителя; - умножение со старших разрядов множителя.

Контрольные вопросы

 

1. Основные способы умножения чисел с фиксированной точкой.

2. Основные алгоритмы умножения чисел с фиксированной точкой.

3. Умножение прямого кода на 2±k.

4. Умножение обратного и дополнительного кодов на 2±k.

5. Умножение дополнительных кодов.

6. Умножение обратных кодов.

7. Умножение чисел, представленных в форме с плавающей точкой.

8. Операционные элементы устройств для умножения чисел с фиксированной точкой.

9. Микрооперации и логические условия в устройствах умножения чисел с фиксированной точкой.

 

Задание к лабораторной работе

 

 

1. Используя данные таблицы 2.1, вычислить произведения чисел ±x и ±y с двойной точностью, если длина разрядной сетки операндов без учета знаковых разрядов равна 4-м двоичным разрядам. Процесс вычислений нужно представить в трассировочных таблицах следующего вида:

 

Микрооперация / логическое условие Состояние операционного элемента
РгМт РгМн НСМ СчТ

 

После вычислений проверить правильность полученных результатов.

2. Для ситуаций, отмеченных в таблице 2.1 звездочкой, построить структурную схему и микропрограмму операционного устройства умножения.

3. Используя данные таблицы 2.2, вычислить произведение X и Y, представленных в форме с плавающей запятой. Длина мантиссы в прямом коде без знака – 4 двоичных разряда, длина порядка в прямом коде без знака – 3 двоичных разряда, основание характеристики равно 2. оценить погрешность произведения, вызванную ограниченной длиной разрядной сетки.

 

4. Содержание отчета

 

1. Титульный лист.

2. Алгоритмы умножения.

3. Результаты выполнения заданий к лабораторной работе.

 

Разделы 1, 2 студент должен выполнить при подготовке к лабораторной работе.

 

Таблица 2.1

Варианты заданий к лабораторной работе 2

 

№ п/п X Y Алгоритм / код
X∙Y X∙(-Y) -X∙Y (-X)∙(-Y)
0.96 0.39 1/ПК* 2/МОК 3/МОК 4/МДК
0.41 0.94 2/ПК* 3/МДК 4/МДК 1/МОК
0.92 0.43 3/ПК* 4/МОК 1/МОК 2/МДК
0.45 0.90 4/ПК* 1/МДК 2/МДК 3/МОК
0.88 0.47 1/ПК 2/МОК* 3/МОК 4/МДК
0.49 0.86 2/ПК 3/МДК* 4/МДК 1/МОК
0.84 0.51 3/ПК 4/МОК* 1/МОК 2/МДК
0.53 0.82 4/ПК 1/МДК* 2/МДК 3/МОК
0.80 0.55 1/ПК 2/МОК 3/МОК* 4/МДК
0.57 0.78 2/ПК 3/МДК 4/МДК* 1/МОК
0.76 0.59 3/ПК 4/МОК 1/МОК* 2/МДК
0.61 0.74 4/ПК 1/МДК 2/МДК* 3/МОК
0.72 0.63 1/ПК 2/МОК 3/МОК 4/МДК*
0.65 0.70 2/ПК 3/МДК 4/МДК 1/МОК*
0.68 0.67 3/ПК 4/МОК 1/МОК 2/МДК*
0.69 0.66 4/ПК 1/МДК 2/МДК 3/МОК*
0.64 0.71 1/ПК* 2/МОК 3/МОК 4/МДК
0.73 0.62 2/ПК 3/МДК* 4/МДК 1/МОК
0.60 0.75 3/ПК 4/МОК 1/МОК* 2/МДК
0.77 0.58 4/ПК 1/МДК 2/МДК 3/МОК*
0.56 0.79 1/ПК 2/МОК* 3/МОК 4/МДК
0.81 0.54 2/ПК* 3/МДК 4/МДК 1/МОК
0.52 0.83 3/ПК 4/МОК 1/МОК* 2/МДК
0.85 0.51 4/ПК 1/МДК 2/МДК* 3/МОК
0.48 0.87 1/ПК 2/МОК 3/МОК 4/МДК*

 

Таблица 2.2

Варианты заданий к лабораторной работе 2

 

№ п/п X Y Алгоритм № п/п X Y Алгоритм
4,37 9,84 3,64 4,89
9,32 5,41 6,64 5,09
8,51 5,29 4,02 1,18
6,99 1,92 1,99 7,53
5,16 6,43 5,63 7,17
1,67 4,13 7,83 3,05
7,12 3,16 6,02 6,27
3,97 3,98 2,21 3,63
8,87 6,43 5,44 9,88
1,09 6,47 7,36 1,13
1,26 7,14 8,06 3,88
8,56 5,14 1,12 2,81
2,74 7,39        

 

Примеры решения алгоритмов умножения

 

1. Вычислить x*y в прямом коде по алгоритму 1.

 

Микрооперация / логическое условие Состояние операционных элементов
РгМт РгМн НСМ СчТ
Установка 0.1000 0.1110 0.00000000
НСМ[8].(0.R1(НСМ[0:7])) РгМт[5].(0.R1 [0:4]) 0.0100 0.1110 0.00000000
НСМ[8].(0.R1(НСМ[0:7])) РгМт[5].(0.R1 [0:4]) 0.0010 0.1110 0.00000000
НСМ[8].(0.R1(НСМ[0:7])) РгМт[5].(0.R1 [0:4]) 0.0001 0.1110 0.00000000
Результат 0.0000 0.1110 0.01110000

 

2. Вычислить x*(-y) в обратном коде по алгоритму 2.

-0.4710=1.10002пк=1.01112ок

 

Микрооперация / логическое условие Состояние операционных элементов
РгМт РгМн НСМ СчТ
Установка 1.0111 0.00001110 0.00000000
РгМн[8].(L1(РгМн[0:7]).0) РгМт[5].(1.R1[0:4]) 1.1011 0.00011100 0.00001110
РгМн[8].(L1(РгМн[0:7]).0) РгМт[5].(1.R1[0:4]) 1.1101 0.00111000 0.00101010
РгМн[8].(L1(РгМн[0:7]).0) РгМт[5].(1.R1[0:4]) 1.1110 0.01110000 0.01100010
Результат 1.1111 0.11100000 0.01100010

 

Коррекция результата

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

 

3. Вычислить (-x)*y в обратном коде по алгоритму 3.

 

Микрооперация / логическое условие Состояние операционных элементов
РгМт РгМн НСМ СчТ
Установка 0.1000 1.0001 0.00000000
НСМ[8].(L1(НСМ[0:7]).1) РгМт[5].(L1[0:4].0) 0.0000 1.0001 1.11100011
НСМ[8].(L1(НСМ[0:7]).1) РгМт[5].(L1[0:4].0) 0.0000 1.0001 1.11000111
НСМ[8].(L1(НСМ[0:7]).1) РгМт[5].(L1[0:4].0) 0.0000 1.0001 1.10001111
Результат 0.0000 1.0001 1.10001111

 

4. Вычислить (-x)*(-y) в дополнительном коде по алгоритму 4.

 

Микрооперация / логическое условие Состояние операционных элементов
РгМт РгМн НСМ СчТ
Установка 1.1000 1.10010000 0.00000000
РгМн[8].(1.R1(РгМн[0:7])) РгМт[5].(L1[0:4].0) 1.0000 1.11001000 1.10010000
РгМн[8].(1.R1(РгМн[0:7])) РгМт[5].(L1[0:4].0) 1.0000 1.11100100 1.10010000
РгМн[8].(1.R1(РгМн[0:7])) РгМт[5].(L1[0:4].0) 1.0000 1.11110010 1.10010000
Результат 1.0000 1.11111001 1.10010000

 

Коррекция результата

 

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

АЛГОРИТМЫ ДЕЛЕНИЯ ДВОИЧНЫХ ЧИСЕЛ

 

 

Цель работы: приобретение практических навыков деления двоичных чисел в прямом, обратном и дополнительном кодах.

 

 

1. Методические указания

 

При делении чисел с фиксированной запятой в ЭВМ наиболее распространенным является метод, основанный на вычитании делителя из делимого. При этом для деления применяются два алгоритма:

а) алгоритм деления с восстановлением остатка;

б) алгоритм деления без восстановления остатка.

На операционных элементах должны выполняться микрооперации:

а) прием делимого в сумматор (возможно с изменением знака);

б) удвоение предыдущего остатка;

в) вычитание делителя из удвоенного остатка;

г) получение обратного (дополнительного) кода;

д) запоминание цифр и знака частного;

е) вычисление знака частного;

ж) подсчет числа выполненных тактов деления.

При выполнении деления на операционных элементах должны вычисляться логические условия:

а) значение цифры частного;

б) признак окончания операции деления

в) признак переполнения разрядной сетки.

 

При подготовке к лабораторной работе рекомендуется использовать литературу [4, гл.5].

 

 

2. Контрольные вопросы

 

1. Алгоритм деления модулей чисел с восстановлением остатка.

2. Фиксация переполнения разрядной сетки при делении.

3. Алгоритм деления модулей чисел без восстановления остатка.

4. Алгоритм деления чисел со знаками в обратном или дополнительном кодах.

5. Алгоритмы деления с определением цифр частного по знаку остатка.

6. Операционные элементы устройства для деления.

7. Микрооперации, выполняемые в устройстве для деления.

8. Логические условия, вычисляемые в устройстве для деления.

 

 

3. Задание к лабораторной работе

 

1. Используя данные таблицы 3.3 и 3.4, разделить (±X)2 и (±Y)2. Процесс вычислений представить в трассировочных таблицах вида:

 

Микрооперация/логическое условие Состояние операционного элемента
НСМ РгЧт СчТ РгДм РгДт
Знак Дм + + - -  
Знак Дт + - + -  
Основная операция 2R + (-ДТ) 2R + ДТ 2R + ДТ 2R + (-ДТ)  
Определение цифры частного R < 0 ЧТ = 0 R > 0 ЧТ = 1 R < 0 ЧТ = 0 R > 0 ЧТ = 1 R < 0 ЧТ = 1 R > 0 ЧТ = 0 R < 0 ЧТ = 1 R > 0 ЧТ = 0  
                     

 

Таблица 3.1

 

 

Знак Дм + + - -
Знак Дт + - + -
Основная операция 2!R + (-ДТ) 2!R + ДТ 2R + ДТ 2R + (-ДТ)
Определение цифры частного R < 0 ЧТ = 0 R > 0 ЧТ = 1 R < 0 ЧТ = 1 R > 0 ЧТ = 0 R < 0 ЧТ = 0 R > 0 ЧТ = 1 R < 0 ЧТ = 1 R > 0 ЧТ = 0

 

Таблица 3.2

 

 

Студенты должны проверить правильность полученных результатов.

2. Разработать структурную схему и микропрограмму операционного устройства для деления. Варианты заданий приведены в таблице 3.5.

 

 

4. Содержание отчета

 

1. Титульный лист.

2. Алгоритмы деления.

3. Результаты выполнения заданий к лабораторной работе.

 

Разделы 1, 2 студент должен выполнить при подготовке к лабораторной работе.

 

 

Таблица 3.3

Выбор способа деления чисел

 

SgX SgY КОД Алгоритм Правило
+ + МДК БВО Табл. 3.1
+ - МОК СВО Табл. 3.1
- + МОК БВО Табл. 3.1
- - МДК СВО Табл. 3.1

 

БВО – алгоритм без восстановления остатка

СВО – алгоритм с восстановлением остатка

 

 

Таблица 3.4

 

Варианты заданий к лабораторной работе 3

 

№ п/п X Y № п/п X Y
0,1000 0,1001 0,1000 0,1011
0,1001 0,1010 0,1001 0,1100
0,1010 0,1011 0,1010 0,1101
0,1011 0,1100 0,1011 0,1110
0,1100 0,1101 0,1100 0,1111
0,1101 0,1110 0,1000 0,1100
0,1110 0,1111 0,1001 0,1101
0,1000 0,1010 0,1010 0,1110
0,1001 0,1011 0,1011 0,1111
0,1010 0,1100 0,1000 0,1101
0,1011 0,1101 0,1001 0,1110
0,1100 0,1110 0,1010 0,1111
0,1101 0,1111      

 

Таблица 3.5

 

Порядковый номер студента в списке Код Алгоритм Правило
1, 9, 17, 25 МДК БВО Таблица 3.1
2, 10, 18     Таблица 3.2
3, 11, 19 МДК СВО Таблица 3.1
4, 12, 20     Таблица 3.2
5, 13, 21 МОК БВО Таблица 3.1
6, 14, 22     Таблица 3.2
7, 15, 23 МОК СВО Таблица 3.1
8, 16, 24     Таблица 3.2