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

Kandaurova_N_Vychislitelnye_sistemy_seti_i_telekommunikatsii

.pdf
Скачиваний:
245
Добавлен:
12.03.2016
Размер:
6.64 Mб
Скачать

мнемоническим правилом поразрядно заменить 1 на 0, а 0 на 1 и дописать левее кода числа код знака 11 (код знака и кода числа разделены точкой).

ДМК отрицательных чисел в соответствии с мнемоническим правилом определеляется через ОМК путѐм подсуммирования единицы в младший разряд ОМК. Отметим, что для положительных чисел ОМК и ДМК полностью совпадают.

Рассмотрим примеры образования ДМК для тех же положительных и

отрицательных чисел:

 

 

Число

ОМК

Преобразование

ДМК

+135(10)

00.135(10)

нет

00.135(10)

135(10)

11.864(10)

11.864(10)+00.001(10)

11.865(10)

+135(8)

00.135(8)

нет

00.135(8)

135(8)

11.642(8)

11.642(8)+00.001(8)

11.643(8)

+135(16)

00.135(16)

нет

00.135(16)

135(16)

11.ECA(16)

11.ECA(16)+00.001(16)

11.ECB(16)

+1001(2)

00.1001(2)

нет

00.1001(2)

1001(2)

11.0110(2)

11.0110(2)+00.001(2)

11.0111(2)

Рассмотрим в ДМК выполнение операции вычитания A B=A+( B) c

числами A и B, равными: A=280,3(10) и B=73,15(10).

Сначала переведем A и B из 10-ой системы счисления в 2-ую по частям: отдельно целые части и отдельно дробные, в которых по лучим столько знаков после запятой, сколько в целых частях чисел (рисунок 2.1).

Рисунок 2.1 – Перевод исходных чисел в 2-ую систему счисления

A=280,3(10)=100011000,010011001(2) B=73,15(10)=1001001,0010011(2)

240

Произведѐм проверку перевода (10 2) обратным переводом (210).

A=100011000,010011001

 

 

=1 28

+ 1 24 + 1 23

+ 1 2-2 + 1 2-5 + 1 2-6 +

 

 

 

 

 

 

 

 

 

 

 

 

(2)

 

 

 

 

 

 

 

 

 

 

+1 2-9=256+16+8+

1

 

1

 

 

1

 

1

=280

128 16 8 1

=280

153

=280,2988281(10).

 

 

 

4

 

 

32

64

 

512

 

512

 

512

 

B=1001001,0010011

 

= 1 26 + 1 23 + 1 20 + 1 2-3 + 1 2-6 + 1 2-7=

 

 

 

 

 

 

 

 

 

(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=64+8+1+

1

 

1

 

 

 

1

 

 

=73

16 2 1

=73

19

= 73,1484375(10).

8

 

64

 

128

 

 

 

 

 

128

128

 

 

 

 

 

Проверка показала, что в обоих случаях перевод (10 2) обеспечил погрешность (ошибку) A=280,3(10) 280,2988281(10)= 0,0011719(10) иB=73,15(10) – 73,1484375(10)= 0,0015625(10). Как видно, в обоих случаях ошибка в 3-м знаке после запятой. Это хорошая точность для ручного перевода. В компьютере точность операций значительно выше.

В числе B левую и правую части дополним нулями до количества знаков в числе A и образуем ДМК числа A и числа –B, т.к. операция A+( B).

ДМК числа A: 00.100011000,010011001

ДМК числа –B: 11.110110110,110110100

Произведѐм сложение полученных кодов:

+ 00.100011000,010011001 11.110110110,110110100 100.011001111,001001101

Старший разряд кода знака «100» в ДМК отбрасывается (в ОМК он подсуммируется к самому младшему разряду кода, что, например, при многократном сложении, выполняемом при умножении чисел, снижает быстродействие алгоритма, а значит и компьютера). Окончательно получим ДМК операции A+( B)=00.011001111,001001101, где код знака 00 говорит, что результат положительный.

Переведѐм полученный результат в 10-ую систему счисления:

011001111,001001101(2)= 1 27 + 1 26 + 1 23 + 1 22 + 1 21 + 1 20 + + 1 2-3 + 1 2-6 + 1 2-7 + 1 2-9=128+64+8+4+2+1+ 18 641 1281 5121 =

=207

64 8 4 1

=207

77

=207,1503906 .

512

 

512

(10)

 

 

Выполнение операции A–B в 10-ой системе счисления обеспечивает результат: A–B=280,3(10)–73,15(10)=207,15(10).

Сравним результат выполненной операции в ДМК и в 10-ой системе счисления =207,1503906(10) – 207,15(10) = 0,0003906.

Это достаточно точный результат, который даѐт погрешность (ошибку) лишь в 4-ом разряде после запятой.

Вывод: операция вычитания A–B выполнена в ДМК как сумма A+( B) правильно и с достаточно высокой точностью.

Отметим, что все операции в компьютере благодаря рассмотренному кодированию сводятся к сложению или многократному сложению на сумматоре АЛУ. Так, операция умножения сводится к многократному

241

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

Арифметические операции над двоичными числами с плавающей точкой осуществляются отдельно над мантиссами и отдельно над порядками. Для этого необходимо иметь сумматор для мантисс и сумматор для порядков.

Выполнение лабораторной работы

Для получения зачѐта по лабораторной работе необходимо:

1)знать вышеизложенный теоретический материал по выполнению арифметических операций в компьютерах в модифицированном обратном и модифицированном дополнительном кодах;

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

Таблица 2.1 – Таблица преобразования арифметических операций к операциям сложения кодов знаков и кодов чисел

Требуемая операция

Необходимое

преобразование

 

А+В

(+А)+(+В)

 

 

А–В

(+А)+(–В)

 

 

–А+В

(–А)+(+В)

 

 

–А–В

(–А)+(–В)

 

 

3)выбрать из таблицы 2.2 по № задания, соответствующему № студента в журнале учебной группы (или другим способом по согласованию с преподавателем), 2 числа (А и В);

Таблица 2.2 – Варианты заданий

 

А

В

 

 

 

+26,75

 

 

–27,875

 

 

+28,125

 

 

–29,25

 

 

+30,375

 

 

+31,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+21,125

 

 

1

 

2

 

3

 

4

 

5

 

6

 

 

–22,25

 

 

7

 

8

 

9

 

10

 

11

 

12

 

 

+23,375

 

 

13

 

14

 

15

 

16

 

17

 

18

 

 

–24,5

 

 

19

 

20

 

21

 

22

 

23

 

24

 

 

+25,625

 

 

25

 

26

 

27

 

28

 

29

 

30

 

4)перевести эти 2 числа (А и В) из 10-ой системы счисления в 2-ую;

5)осуществить проверку правильности всех переводов, используя программу Калькулятор→Вид→Инженерный. Цепочка открытия калькулятора: Пуск→Все программы→Стандартные→ Калькулятор;

242

6)образовать модифицированный обратный и модифицированный дополнительный код чисел А и В;

7)выполнить операцию сложения чисел А и В в модифицированном обратном и модифицированном дополнительном кодах;

8)получить из кодов сумм 2-ые числа со знаком и перевести их в 10-ую СС в соответствии с формулой (1.1);

9)сравнить полученные результаты по линии ОМК и ДМК, выяснить – какой код обеспечивает большее быстродействие и почему;

10)проверить правильность результатов, полученных по линии ОМК и ДМК, сравнением с результатом операции алгебраического сложения исходных чисел в 10-ой СС;

11)материалы всей работы (отчѐт о работе) оформить в электронной среде MS Word, Paint, Visio или Рисование и сохранить на логическом диске D:/Студент/№ группы/ФИО студента/№ работы (а также создать копию отчѐта о работе на любом внешнем ЗУ) и представить преподавателю для защиты;

12)защитить результаты выполненной работы, ответить на контрольные вопросы.

Примечание. Только после представления отчѐта (результатов выполненной работы) в электронном виде преподавателю и еѐ защиты она считается выполненной.

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

1.Какие группы операций относят в компьютерах к арифметическим операциям?

2.Почему все операции в компьютерах выполняются с кодами чисел?

3.Как кодируются знаки чисел «+» и «–»?

4.Как образуется ОМК для положительных чисел?

5.Как образуется ОМК для отрицательных чисел?

6.Как образуется ДМК для положительных чисел?

7.Как образуется ДМК для отрицательных чисел?

8.Как осуществить проверку выполнения операций в ОМК или ДМК?

9.Почему ДМК обеспечивает компьютеру более высокое быстродействие?

10.Почему ОМК и ДМК для положительных чисел совпадают?

11.Как осуществить проверку выполнения операций в ОМК или ДМК?

12.Совпадут ли результаты выполнения операций, выполненных в ОМК и ДМК?

13.Поясните преобразование арифметических операций к операциям сложения кодов знаков и кодов чисел.

243

Лабораторная работа № 3. ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ В КОМПЬЮТЕРАХ НАД (2-10)-ми КОДАМИ ЧИСЕЛ

Цель:

1) закрепить теоретические знания и получить практические навыки выполнения арифметических операций с индексными (целыми) переменными в (2-10)-ом сопроцессоре компьютера, представленными двоично-десятичными кодами чисел;

2) получить и закрепить практические навыки работы с цифровой информацией в электронном виде в различных программных средах.

Краткие теоретические сведения

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

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

1.Сложение чисел начинается с младших цифр (тетрад) и производится

сучетом возникающих переносов из младших разрядов в старшие.

2.Знак суммы формируется специальной логической схемой по знаку большего слагаемого.

3.Для того чтобы при сложении двоично-десятичных цифр возникали переносы, аналогичные при сложении чисел в десятичном представлении,

необходимо проводить так называемую десятичную коррекцию. Для этого к каждой тетраде первого числа прибавляется дополнительно по цифре 610=01102, что позволяет исключить шесть неиспользуемых комбинаций (1010, …, 1111)2, так как они кодируют шестнадцатеричные цифры А, …, F

(числа 1010, …, 1510).

4. После операции суммирования осуществляется корректировка суммы. Из тех тетрад суммы, из которых не было переносов, изымаются ранее внесенные избытки 610=01102. Для этого проводится вторая коррекция. Операция вычитания заменяется, как и обычно, операцией сложения с числом «-6», представленным дополнительным кодом 10102, но только в тех разрядах, в которых отсутствовали переносы. При этой второй коррекции переносы из тетрад блокируются.

5. Операция вычитания реализуется достаточно своеобразно. По общему правилу сложения (см. п. 1-4) к тетрадам числа с большим модулем прибавляются дополнительные коды тетрад другого числа. При этом первая

244

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

Подкрепим сказанное примером, приведѐнном на рисунке 3.1.

Рисунок 3.1 – Пример выполнения сложения над (2-10)-ми кодами чисел

Выполнение лабораторной работы

Для получения зачѐта по лабораторной работе необходимо:

1)знать вышеизложенный теоретический материал по выполнению арифметических операций с индексными (целыми) переменными в (2-10)- ом сопроцессоре компьютера, представленными двоично-десятичными кодами чисел;

2)выбрать из таблицы 3.1 по № задания, соответствующему № студента в журнале учебной группы (или другим способом по согласованию с преподавателем), 2 целых положительных числа (А и В);

Таблица 3.1 – Варианты заданий

 

А

В

 

 

 

+26

 

 

+27

 

 

+28

 

 

+29

 

 

+30

 

 

+31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+21

 

1

 

2

 

3

 

4

 

5

 

6

 

 

 

+22

 

7

 

8

 

9

 

10

 

11

 

12

 

 

 

+23

 

13

 

14

 

15

 

16

 

17

 

18

 

 

 

+24

 

19

 

20

 

21

 

22

 

23

 

24

 

 

 

+25

 

25

 

26

 

27

 

28

 

29

 

30

 

3)образовать тетрады А2-10 первого положительного числа А в формате 16ричной системы счисления;

4)получить А1 проведением 1-ой десятичной коррекции А2-10, прибавив к каждой тетраде дополнительно по цифре 610=01102, что позволяет

245

исключить шесть неиспользуемых комбинаций (1010, …, 1111)2 и обеспечить возникновение переносов при дальнейшем сложении;

5)образовать тетрады В2-10 второго положительного числа В в формате 16ричной системы счисления, это число не корректируется;

6)произвести сложение тетрад первого откорректированного числа А1 и

тетрад второго положительного числа В2-10, получив промежуточный результат С1;

7)произвести 2-ую коррекцию полученной суммы С1. Из тех тетрад суммы, из которых не было переносов при сложении, вычитаются ранее внесенные

избытки 610=01102. Операция вычитания заменяется операцией сложения с числом «-6», представленным дополнительным кодом 10102, но только в тех разрядах, в которых отсутствовали переносы. Получим окончательный результат сложения С2-10.

8)проверить правильность операции сложения в (2-10) коде С2-10 параллельным выполнением операции сложения в 10-ой СС С10 и сравнением их результатов;

9)материалы всей работы (отчѐт о работе) оформить в электронной среде MS Word, Paint, Visio или Рисование и сохранить на логическом диске D:/Студент/№ группы/ФИО студента/№ работы (а также создать копию отчѐта о работе на любом внешнем ЗУ) и представить преподавателю для защиты;

10)защитить результаты выполненной работы, ответить на контрольные

вопросы.

Примечание. Только после представления отчѐта (результатов выполненной работы) в электронном виде преподавателю и еѐ защиты она считается выполненной.

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

1.Дайте определение индексных переменных.

2.Существуют ли в компьютерах для индексных переменных (2-10)-ые сопроцессоры?

3.Требуют ли переводы чисел из 10-ой СС в 2-ую и обратно значительного машинного времени при обработке больших массивов информации?

4.В каких кодах выполняются действия над отдельными цифрами в их (2- 10)-ом представлении?

5.С каких тетрад начинается сложение чисел в их (2-10)-ом представлении?

6.Учитываются ли возникающие переносы из младших разрядов в старшие?

7.Каким образом формируется знак суммы результата?

8.Для чего необходимо проводить, так называемую, 10-ую коррекцию?

9.Как проводится первая 10-ая коррекция первого числа?

10.Как проводится вторая 10-ая коррекция суммы?

11.Каковы особенности выполнения операции вычитания?

246

Лабораторная работа № 4. СИНТЕЗ СХЕМ ФИКСАЦИИ НЕПРАВИЛЬНЫХ ТЕТРАД В (2-10)-ом КОДЕ

Цель:

1) закрепить теоретические знания и получить практические навыки разработки схем фиксации неправильных тетрад в (2-10)-ых сопроцессорах компьютеров, работающих с индексными (целыми) переменными в двоичнодесятичном представлении чисел;

2) получить и закрепить практические навыки разработки схем в простейшем базисе И-ИЛИ-НЕ в электронном виде в различных программных средах.

Краткие теоретические сведения

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

1.Словесное описание работы схемы.

2.Формализация словесного описания в виде таблиц истинности.

3.Запись функций в дизъюнктивной (конъюнктивной) совершенной

нормальной форме по таблицам истинности.

4.Минимизация логических зависимостей с целью их упрощения.

5.Представление полученных выражений в выбранном логически полном базисе элементарных функций.

6.Построение схемы устройства.

7.Проверка работоспособности полученной схемы.

Покажем взаимосвязь перечисленных этапов на следующем примере. Пример. Спроектировать схему, фиксирующую появление

«неправильной» тетрады в двоично-десятичном представлении чисел.

1. Каждая тетрада двоично-десятичного представления числа содержит десятичные цифры 0–9, что соответствует двоичным числам 0000–1001. Значения тетрады, соответствующие двоичным числам 1010–1111 (шестнадцатеричные цифры АF), не должны появляться при представлении десятичных чисел.

2.Составим таблицу истинности функции F (таблица 4.1), которая принимает значения, равные единице, при появлении «неправильных» тетрад. Разряды тетрады обозначим переменными: х, у, z, u.

3.Исходная совершенная дизъюнктивная нормальная форма записывается как

Fx yzu x yzu xyzu xyzu xyzu xyzu .

4.Эта форма функции допускает упрощение, что видно по диаграмме Вейча (таблица 4.2). Этот же результат может быть получен аналитически.

5.Минимальная форма функции F в логически полном базисе И-ИЛИ-

НЕ будет иметь вид:

247

F xy xz x( y z) .

Для представления этой же схемы в другом полном базисе, например (И-НЕ), воспользуемся правилом де Моргана:

F xy xz xy xz xy xz .

Таблица 4.1 – Таблица истинности функции F

Таблица 4.2 – Диаграмма Вейча для функции F

6. По полученным зависимостям можно построить схемы фиксации «неправильных» тетрад (рисунок 4.1).

x y z u

 

 

x y z u

 

 

&

 

&

 

 

F

 

 

 

 

&

 

1

 

 

F

 

 

 

 

 

 

&

 

а

 

 

б

 

Рисунок 4.1 – Схема фиксации «неправильных» тетрад: а – в базисе И-ИЛИ- НЕ, б – в базисе И-НЕ

248

7. Проверить работоспособность построенных схем можно путем задания различных комбинаций переменных х, у, z, u и определения реакции на выходе схемы F.

Выполнение лабораторной работы

Для получения зачѐта по лабораторной работе необходимо:

1)знать вышеизложенный теоретический материал по синтезу схем фиксации неправильных тетрад в (2-10)-ых сопроцессорах компьютеров и ВС, работающих с индексными (целыми) переменными в двоичнодесятичном представлении чисел;

2)выбрать из таблицы 4.3 число – одну неправильную тетраду по № задания, соответствующему № студента в журнале учебной группы (или другим способом по согласованию с преподавателем);

Таблица 4.3 – Варианты заданий

(2-10)-ое

(2-10)-ое

(2-10)-ое

(2-10)-ое

задания

число

задания

число

задания

число

задания

число

 

 

 

 

 

 

 

 

1

1010=A

6

1111=F

11

1110=E

16

1101=D

2

1011=B

7

1010=A

12

1111=F

17

1110=E

3

1100=C

8

1011=B

13

1010=A

18

1111=F

4

1101=D

9

1100=C

14

1011=B

19

1010=A

 

 

 

 

 

 

 

 

5

1110=E

10

1101=D

15

1100=C

20

1011=B

 

 

 

 

 

 

 

 

3)составить таблицу истинности функции (в соответствии с таблицей 4.1), которая принимает значения, равные единице, только при появлении одной выбранной «неправильной» тетрады согласно № задания;

4)записать конъюнктивную форму функции Fi по составленной таблице истинности для своего варианта «неправильной» тетрады. Для справки записаны функции для всех первых 6-ти вариантов: F1 x yzu , F2 x yzu ,

F3 xyzu , F4 xyzu , F5 xyzu , F6 xyzu ;

5)проанализировать полученную функцию Fi на предмет упрощения и по возможности упростить;

6)по полученной зависимости функции Fi построить схему фиксации

«неправильной» тетрады только для своего варианта в базисе И-ИЛИ-НЕ, для примера на рисунке 4.2 представлена структурная схема функции F1 x yzu , созданная с помощью программы Рисование;

7)проверить работоспособность построенной схемы путем задания всех других неправильных тетрад (х, у, z, u) и определения реакции на выходе схемы Fi ;

8)материалы всей работы (отчѐт о работе) оформить в электронной среде MS Word, Paint, Visio или Рисование и сохранить на логическом диске

249

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]