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

Практика 1_1 курс

.pdf
Скачиваний:
17
Добавлен:
11.05.2015
Размер:
1.06 Mб
Скачать

Практические занятия 1 курс 1 семестр

Практическое занятие №1. Системы счисления

Соответствие основных систем счисления

Таблица 1. Соответствие чисел 10-й, 2-ой и цифр 8-й систем счисления

Десятичная

Двоичная

8-я

система

система

система

счисления

счисления

счисления

0

0

0

1

1

1

2

10

2

3

11

3

4

100

4

5

101

5

6

110

6

7

111

7

8

1000

10

9

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

Например, 13 : 8 = 1 остаток 5

1 : 8 = 0 остаток 1 Итак, получили 1310 = 158 .

Обратный перевод:

158 = 1* 81 + 5* 80 = 8 + 5 = 1310

Для перевода чисел из 10-й системы в 2-ю действуют по простому правилу:

последовательно делят десятичное число на 2 до тех пор, пока в результате не получиться 0, а затем выписывают остатки при делении в обратном порядке — это и даст двоичное представление исходного десятичного числа.

Например, переведем число 13 в двоичную систему счисления.

13 : 2 = 6 остаток 1

6 : 2 = 3 остаток 0

3 : 2 = 1 остаток 1

1 : 2 = 0 остаток 1 Итак, получили 1310 = 11012 .

Для обратного перевода вспомним, что 2- я система (как и десятичная) является позиционной системой.

Скажем, в десятичной системе 1310 =1*10 + 3*1. Первую (крайнюю правую) позицию цифры назовем нулевой, следующую (справа налево)

первой и т.д. Тогда,

1310 = 1* 101 + 3 * 100 .

Значит, и 11012 = 1*23 + 1*22 + 0*21 + 1* 20 = 8

+ 4 + 1 = 1310

Перевод в 8-ю систему из 10-й и обратно делается аналогично. Для получения 8-ричного представления последовательно делят на 8 (пока не станет результат деления нулем) и выписывают остатки в обратном порядке. А при обратном переводе (в 10-ю из 8-й) используют тоже позиционность систем счисления.

Приведем таблицу соответствия 10-й, 2-й и 8-й систем (Таблица 1). Нетрудно видеть, что тройки двоичных цифр соответствуют 8-ричному числу. Это позволяет легко переводить числа из 2-й системы в 8-ричную и обратно.

Например, 108 10 = 1 101 1002 = 1548 . Убедимся, что тут все верно.

1548 = 1*82 + 5*81 +4*80 = 64 + 40 + 4 = 108 10

 

 

Информатика. 1 курс, 1 семестр

Страница 1

Практические занятия 1 курс 1 семестр

Совершенно аналогично все обстоит и с 16-ричной системой счисления по отношению к 10-й системе. Отличие лишь в том, что в 16-й системе появляются дополнительные цифры A, B, C, D, E, F (см. таблицу 2) . Нетрудно видеть, что четверки (тетрады) двоичных цифр соответствуют 16-ричной цифре. Это позволяет легко переводить числа из 2-й системы в 16-ричную и обратно.

Например,

108 10 = 110 11002 = 6С16

Убедимся и здесь, что все верно.

16 = 6*161 + 12*160 = 96 + 12 = 108 10

Таблица 2. Соответствие чисел 10-й, 2-ой и цифр 16-й систем счисления

Десятичная

Двоичная

16-я

система

система

система

счисления

счисления

счисления

0

0

0

1

1

1

2

10

2

3

11

3

4

100

4

5

101

5

6

110

6

7

111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

Задачи

Процедура преобразования дробей представляет собой последовательное умножение на 2. На каждом шаге дробная часть предыдущего произведения вновь умножается на 2, а цифры, представляющие целую часть произведений (они всегда равны либо 0, либо 1), выписываются как последовательные (слева направо) цифры двоичного представления.

Например, преобразуем число 0,8110 в двоичную систему.

Таким образом, 0.8110 = 0.1100112 (приблизительно).

Видим, что процедура перевода дробей не всегда дает точный результат. В данном случае оборвали на шестой цифре (разряде). Обычно в таких случаях заранее оговаривают, какой разрядности результат следует получить.

Аналогично переводятся дробные числа в 8- ричную систему (умножение на 8) и в 16ричную (умножение на 16).

1.Переведите числа 25, 31, 37, 63, 85, 127, 128 в двоичную систему счисления.

2.Переведите числа 1000112, 1011012, 1101112, 10010112, 10111112, 11010012 в десятичную систему счисления.

3.Переведите в двоичную систему числа 13,125; 23,25; 37,375; 48,625; 78,875

4.Выполните сложение в двоичной системе:

а) 10101112 + 1101012

б) 1011012 + 111112

 

5. Выполните вычитание в двоичной системе:

 

а) 1011012 – 111112 б) 110112 – 1101012

 

 

 

 

 

Информатика. 1 курс, 1 семестр

Страница 2

Практические занятия 1 курс 1 семестр

6.Переведите числа 49, 53, 64, 150, 266 в восьмеричную и двоичную систему счисления.

7.Переведите числа 1238, 2348, 3458, 4568, 5678 в десятичную и двоичную систему счисления.

8.Переведите в восьмеричную систему число 12,5.

9.Выполните сложение в восьмеричной системе:

а) 3538 + 7368 б) 13538 + 7778

10 . Выполните вычитание в восьмеричной системе:

а) 11538 – 6628 б) 1538 – 6628

11.Переведите числа 29, 43, 54, 120, 206 в 16-ричную, восьмеричную и двоичную систему счисления.

12.Переведите числа 738, 1348, 2458, 3568, 4678 в 16-ричную, десятичную и двоичную систему счисления.

13.Переведите в 16-ричную систему числа 49,6875 и 52,9.

14.Выполните сложение в 16-ричной системе:

а) 3AF16 + 1CBE16 б) 1EA16 + 7D716

15 . Выполните вычитание в 16-ричной системе:

а) 1CFB16 – 22F8 б) 22F16 – CFB16

 

 

Информатика. 1 курс, 1 семестр

Страница 3

Практические занятия 1 курс 1 семестр

Практическое занятие №2. Двоичная арифметика

Как ясно, оперировать приходится со знаковыми числами (в том числе и отрицательными). В этом случае существуют разные подходы.

Прямой код

В этом случае самый старший разряд отводится на знак: 0 – для положительных, 1 – для отрицательных. . Например, при 8-разрядном представлении

+18 = 00010010

–18 = 10010010

Однако, прямой код неудобен при использовании в вычислениях. Во-первых, сложение и вычитание положительных и отрицательных чисел выполняется по-разному, а потому требуется анализировать знаковые разряды операндов (слагаемых). Во-вторых, в прямом коде числу 0 соответствует две комбинации:

+0 = 00000000

–0 = 10000000

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

По этим причинам прямой код практически не используется при реализации в АЛУ современныхкомпьютеров. Вместо него применяют так называемый дополнительный код.

Дополнительный код

Дополнительный код строится следующим образом. Сначала формируется обратный код (инвертируется прямой – нули заменяются на 1, а 1 на 0), а затем к младшему разряду добавляют 1. При выполнении арифметических операций положительные числа представляются в прямом коде, а отрицательные числа – в дополнительном.

Например,

+18

в прямом коде на 8 разрядов

00010010

–18

в прямом коде на 8 разрядов

10010010

–18

в обратном коде на 8 разрядов

11101101

–18

в дополнительном коде на 8 разрядов

11101110

Главное достоинство дополнительного кода – вычитание заменяется сложением (с отрицательным числом), при этом со знаковым разрядом обращаются так же, как и со всеми остальными.

Например, сложим 510 (0000 01012) и –910 (1111 01112), используя 8-разрядную двоичную арифметику.

0000 0101

+

1111 0111

1111 1100

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

1111 1100 – 1 = 1111 1011 => 0000 0100, а это и означает, что результат –410 , т.е. все верно.

Задачи

1.Постройте прямой код отрицательных чисел –1, –10, –100, записанных с помощью 8 двоичных разрядов.

2.Переведите в дополнительный код отрицательные числа –1, –10, –100 и запишите их с помощью 8 двоичных разрядов.

 

 

Информатика. 1 курс, 1 семестр

Страница 4

Практические занятия 1 курс 1 семестр

3.Рассматриваются 8-разрядные числа со знаком. Какие из приведенных 16-ричных чисел отрицательные: 8, 10, 20, 3F, 70, 80, A1, F0 ?

4.Даны числа 19 и 31. Выполните операции 19 + 31 и 19 – 31 в 8-разрядной двоичной арифметике. Для проверки переведите полученный результат в десятичную систему счисления.

Вещественные числа

Любое вещественное число N, представляемое в системе счисления с основанием p,

можно представить в виде

N = ± M p±k,

где М – мантисса; k – порядок числа (целое число).

Например, десятичное число 234,47 можно представить следующим образом:

234,47 = 0,23447* 103.

А, скажем, двоичное число 1011, 01 запишется так:

1011,01 = 0,101101*24 = 0,101101*10100.

Здесь мы учли, что 210 = 102 и 410 = 1002.

Такое представление чисел называется представлением с плавающей точкой, где порядок определяет, на сколько порядков необходимо осуществить сдвиг относительно запятой. Когда плавающая запятая размещена в мантиссе перед первой значащей цифрой (как в нашем случае записано в правой части: 0,23447* 103 или 0,101101*10100), то такая форма записи называется нормализованной.

В компьютере для работы с порядками чисел используется смещенный код. Суть его в том, что если на порядок отводится разрядная сетка в n разрядов, то смещенный порядок 2n–1 + p. Например, если для порядка отводится 8 разрядов, то 2n–1 = 128. Порядок при n = 8 будет принимать значения от –128 до 128. В итоге значения порядка в смещенном коде будут от 0 до 255. Это позволяет работать с порядками как с целыми без знака.

Сложение (и вычитание) вещественных чисел

Рассмотрим на примере. Даны два числа: 9,2510 и 14,37510 . Проведем сложение, а потом – вычитание. Переведем в двоичную систему (отдельно – целая часть, отдельно – дробная):

9,2510 = 1001,012

14,37510 = 1110,0112

Выровняем порядки и сложим:

0,100101*24

 

+

 

0,1110011*24

 

1,0111101*24 = 10111,101 = 24 + 22 + 21 + 20 + 2–1 + 2–3 =16 + 4 + 2 + 1 +0,5 +0,125 = 23,625.

Проверим в десятичной: 9,25 + 14,375 = 23,625, т.е. все верно.

Проведем теперь вычитание. Как помним, его сводим к сложению, но в дополнительном

коде:

 

0,100101*24

0,100101*24

=> +

0,1110011*24

0,0001101*24

 

0,1010111*24

Поскольку второе число (по модулю) больше первого, то результат отрицательный, значит, он представлен в дополнительном коде и чтобы узнать модуль результата – преобразуем в прямой код:

0,0101001*24 = 101,001 = 22 + 20 + 2–3 = 5,125.

Проверяем в десятичной: 9, 25 – 14,375 = –(14,375 – 9,25) = –5,125

Информатика. 1 курс, 1 семестр Страница 5

Практические занятия 1 курс 1 семестр

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

0,1110011*24

0,100101 *24 0,0101001*24 = 101,001 = 22 + 20 + 2–3 = 5,125

Остается приписать "минус" и имеем –5,125, т.е. все верно.

Задачи

1.Выполните сложение двух десятичных чисел 2,5 и 0,125, предварительно преобразовав их к двоичной форме и выделив значащую часть и порядок. Проверить результат в десятичной системе.

2.Выполните вычитание двух десятичных чисел 0,125 – 2,5, предварительно преобразовав их к двоичной форме и выделив значащую часть и порядок. Вычтите из большего числа (2,5) меньшее (0,125), а знак добавьте в конце. Проверить результат в десятичной системе.

 

 

Информатика. 1 курс, 1 семестр

Страница 6

Практические занятия 1 курс 1 семестр

Практическое занятие №3. Основы логики

Основные логические операции

НЕ (NOT)

 

 

 

И (AND)

 

 

ИЛИ (OR)

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

Ā

 

A

 

B

A●B

 

A

B

A+B

0

 

1

 

0

 

0

0

 

0

0

0

1

 

0

 

0

 

1

1

 

0

1

1

 

 

 

 

1

 

0

1

 

1

0

1

 

 

 

 

1

 

1

1

 

1

1

1

Исключающее ИЛИ ( )

 

Импликация (Следование)

Эквивалентность

 

 

 

 

 

 

 

 

 

 

 

 

 

A

B

 

A B

 

A

B

A→ B

 

A

B

 

A↔B

0

0

 

0

 

0

0

1

 

0

0

 

1

0

1

 

1

 

0

1

1

 

0

1

 

0

1

0

 

1

 

1

0

0

 

1

0

 

0

1

1

 

0

 

1

1

1

 

1

1

 

1

A B = Ā●B+ A●

 

 

A→B = Ā + B

 

 

A↔B =

 

= Ā● +A●B

Проверим истинность выражения A B = Ā●B+ A●

Для этого построим таблицу истинности для всех возможных комбинаций A и B.

A

B

Ā

 

Ā●B

A●

Ā●B+ A●

0

0

1

1

0

0

0

0

1

1

0

1

0

1

1

0

0

1

0

1

0

1

1

0

0

0

0

1

Видим, что совпадает с результатом для A B

Пример для трех логических переменных.

Самолет имеет три двигателя. Система сигнализации должна дать аварийный сигнал, если вышли из строя два из трех двигателей. Обозначим:

A – 1-й двигатель вышел из строя

B – 2-й двигатель вышел из строя

C – 3-й двигатель вышел из строя X – Аварийная ситуация

Тогда X = A●B + A●C + B●C

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

A

B

C

A●B

A●C

B●C

X

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

0

1

1

0

0

1

1

1

0

0

0

0

0

0

1

0

1

0

1

0

1

1

1

0

1

0

0

1

1

1

1

1

1

1

1

Видим, что X истинно тогда и только тогда, когда любые две (или все три) логические переменные A, B и C истинны (равны 1), т.е. любые 2 или 3 двигателя вышли из строя.

 

 

Информатика. 1 курс, 1 семестр

Страница 7

Практические занятия 1 курс 1 семестр

Задачи

1) Составить таблицы истинности для выражений: а)

б)

в) (A→B)+ (Ā→ )

г) (Ā→ ) → (A→ )

д) (A↔B)+ (Ā↔B)

е) (A↔ )+ (A↔C)+ ( ↔C)

Основные тождества алгебры логики

Закон

Для операции И

 

 

Для операции ИЛИ

Двойного отрицания

 

 

 

 

 

 

 

 

 

 

 

= A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Исключенного третьего

= 0

 

 

 

 

 

 

 

= 1

 

 

 

 

 

Операции с константами

A 1 = A,

A 0 = 0

 

 

A+1 = 1, A + 0 = A

Повторения

A A = A

 

 

 

 

 

 

 

 

A + A = A

Переместительный

A B = B

A

 

 

A + B = B + A

Сочетательный

A (B C) = (A B) C

 

 

A+(B+C) = (A+B)+C

Распределительный

A + B C = (A+B) (A+C)

 

 

A (B+C) = A B + A C

Поглощения

A + A B = A

 

 

A (A+B) = A

Де Моргана

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

A + Ā = (A + Ā) =

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

Общее правило для алгебраического упрощения:

1.Заменить все "небазовые" операции (исключающее ИЛИ, импликацию, эквивалентность и др.) га их выражения через базовые операции "НЕ", "И" и "ИЛИ".

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

3.Используя вынесение общих множителей за скобки, раскрытие скобок и другие законы алгебры логики, упростить выражение.

Пример.

Здесь последовательно использовали:

закон де Моргана;

распределительный закон;

закон исключенного третьего;

переместительный закон;

закон повторения;

снова переместительный закон;

закон поглощения.

Задачи

Упростить логические выражения: а)

б)

в) г) д)

е)

 

 

Информатика. 1 курс, 1 семестр

Страница 8

Практические занятия 1 курс 1 семестр

Синтез логических выражений

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

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

Пример. Построим логическое выражение для операции импликации X = A → B по ее таблице истинности.

A

B

A→ B

0

0

1

0

1

1

1

0

0

1

1

1

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

Первая строка даст 1 при , вторая строка равна 1 при , четвертая даст 1 при .

Таким образом, имеем простое правило: если в некоторой строке переменная равна нулю, она входит в произведение с отрицанием, а если равна 1, то без отрицания.

В итоге, получаем функцию: X =

 

+

 

+

Упростим это выражение:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X =

+

+

 

 

 

 

 

 

 

 

 

 

На предпоследнем шаге использовали распределительный закон.

Кстати, и доказали ранее приведенную формулу для замены импликации через базовые операции НЕ и ИЛИ.

Пример. Рассмотрим таблицу истинности для трех переменных.

A

B

C

X

Выражение для

 

 

 

 

истинности

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

0

 

 

 

 

 

 

 

1

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

0

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

Имеем:

Упростим это выражение:

 

 

Информатика. 1 курс, 1 семестр

Страница 9

Практические занятия 1 курс 1 семестр

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

Пример.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Учитывая, что

 

 

 

 

 

 

, можно представить второе слагаемое в виде:

 

 

 

 

 

 

Тогда получаем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задачи

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

a)

A

B

X

б)

A

B

X

в)

A

B

X

г)

A

B

X

 

0

0

0

 

0

0

1

 

0

0

0

 

0

0

0

 

0

1

1

 

0

1

0

 

0

1

1

 

0

1

0

 

1

0

0

 

1

0

1

 

1

0

0

 

1

0

1

 

1

1

1

 

1

1

1

 

1

1

0

 

1

1

0

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

а)

A

B

C

X

б)

A

B

C

X

в)

A

B

C

X

 

0

0

0

0

 

0

0

0

1

 

0

0

0

1

 

0

0

1

1

 

0

0

1

0

 

0

0

1

1

 

0

1

0

1

 

0

1

0

0

 

0

1

0

1

 

0

1

1

1

 

0

1

1

0

 

0

1

1

0

 

1

0

0

0

 

1

0

0

1

 

1

0

0

0

 

1

0

1

0

 

1

0

1

0

 

1

0

1

0

 

1

1

0

1

 

1

1

0

1

 

1

1

0

1

 

1

1

1

0

 

1

1

1

1

 

1

1

1

0

 

 

Информатика. 1 курс, 1 семестр

Страница 10