УП Информатика
.pdfщих ячейках памяти, причем вторая ячейка используется для записи последующих цифр мантиссы. В этом случае для выполнения операций над числами с двоичной точностью нужны специальные команды.
Таким образом, форма представления чисел с плавающей точкой позволяет записывать числа из широкого диапазона и с достаточно высокой точностью. Это дает такой форме преимущества перед способом записи чисел с фиксированной точкой. Но существенный недостаток такого представления – значительное усложнение арифметических операций [2].
1.4. Кодирование чисел в ЭВМ
Для машинного представления отрицательных чисел применяют специальные коды – прямой, обратный, дополнительный.
Прямой код. Изображение двоичного числа X в прямом коде Xпр основано на представлении его абсолютного значения с закодированным знаком.
Для положительного числа X в закодированном виде прямой код Xпр совпадает с записью самого числа: если X = x1 x2 … xm, то знаковый разряд (слева) отделяется точкой и в него записывается нуль.
Xпр = 0. x1 x2 … xm.
Для отрицательного числа X в закодированном виде прямой код Xпр имеет такую запись:
если X= – x1 x2 …
ца;
Xпр = 1. x1 x2 … xm.
П р и м е р . Представить числа X1 = 11010 и X2 = – 11010 в прямом коде:
21
X1 пр = 0.11010; X2 пр = 1.11010.
Изображение нуля в прямом коде неоднозначно, т.е. для тривиального равенства 0 = + 0 = – 0 справедливо следующее:
+ 0пр = 0.00 … 00;
–0 пр = 1.00 … 00.
Впрямом коде нуль может иметь два представления, которые,
соответственно, называются положительным и отрицательным
машинным нулем.
Прямой код используется для хранения положительных и отрицательных чисел в запоминающем устройстве.
Обратный код. Обратный код положительного числа X совпадает с его прямым кодом;
если X > 0, Xобр = Xпр = X.
Обратный код отрицательного числа X образуется следующим образом:
а) в знаковый разряд записывается единица; б) в цифровых разрядах единицы заменяются нулями, а нули –
единицами.
П р и м е р .
а) Обратный код положительного числа X = 10110 равен Xобр = 0.10110. б) Обратный код отрицательного числа X = – 10110 равен Xобр = 1.01001.
Дополнительный код. Дополнительный код положительного числа совпадает с его прямым кодом:
Xдоп = Xпр = X.
22
Дополнительный код отрицательного двоичного числа образуется следующим образом:
а) в знаковый разряд записывается единица; б) во всех цифровых разрядах единицы заменяются нулями, а ну-
ли – единицами; в) к младшему разряду добавляется единица.
П р и м е р . Дополнительный код:
положительного числа X = 10010 равен этому числу Xдоп = 0.10010; отрицательного числа X = – 10010 равен Xдоп = 1.01101 + 0.00001 =
= 1.01110;
отрицательного числа X = – 11001 равен Xдоп = 1.00110 + 0.00001 = = 1.00111.
Специальные коды (обратный и дополнительный) позволяют заменить операцию вычитания в ЭВМ операцией сложения. Это дает возможность свести все арифметические операции к выполнению операции сложения.
П р и м е р . Сложить два числа X = 101 и Y = – 001 в обратных кодах:
При сложении кодов единица старшего разряда «вышла» влево за знаковый разряд. В этом случае для получения правильного результата необходимо выполнить операцию циклического переноса, т.е. единицу, «вышедшую» за знаковый разряд, отбросить, а к младшему разряду числа прибавить единицу:
При этом результат операции сложения положительный, так как в знаковом разряде стоит 0. Окончательный результат: 100.
23
Операция циклического переноса необходима, когда единица «выходит» за знаковый разряд. Если в знаковом разряде результата стоит 1, то результат операции будет отрицательным.
При сложении в дополнительном коде единица переноса, «вышедшая» за знаковый разряд, отбрасывается, а к младшему разряду единица не прибавляется.
1.5. Арифметические операции в двоичной системе счисления
На выполнении элементарных таблиц сложения и умножения основано построение арифметических операций в ЭВМ с двоичными числами.
Сложение и умножение выполняются по следующим правилам:
П р и м е р .
+ 000111 110110
111101
Вычитание выполняется по следующим правилам:
24
При вычитании двоичных чисел в случае необходимости занимается единица из соседнего старшего разряда. Эта единица дает две единицы текущему (обрабатываемому) разряду. Единица, занятая через несколько разрядов, дает две единицы текущему разряду и единицы всем промежуточным разрядам.
П р и м е р .
При делении двоичных чисел необходимо избавиться от дробной части (101.01:11.1 → 10101:1110) и затем делить обычным способом.
В ЭВМ вместо операции вычитания выполняется операция сложения уменьшаемого с вычитаемым противоположного знака и с использованием обратного или дополнительного кода. Например, в дополнительном коде предыдущая операция вычитания будет представлена так:
10011 – окончательный результат с учетом операции циклического переноса (единица, вышедшая за знаковый разряд, отбрасывается).
Контрольные вопросы
1.Чем отличается позиционная система счисления от непозиционной?
2.Почему в ЭВМ используется двоичная система счисления?
3.Каковы причины широкого использования восьмеричной и шестнадцатеричной систем счисления?
25
4.Назовите критерий, определяющий порядок перевода чисел из одной системы счисления в другую.
5.Чем отличаются формы представления чисел с фиксированной точкой
ис плавающей точкой?
6.В каком случае применяются обратный и дополнительный коды?
7.Как перевести число из обратного кода в прямой?
8.Как перевести число из дополнительного кода в прямой?
Задания для самостоятельного решения
1. Перевести числа из одной системы счисления в другую:
1)34.2610 → X2;
2)45.3210 → X8;
3)172.15310 → X16;
4)11010111012 → X8;
5)0.10011012 → X10;
6)111101000111002 → X16;
7)4C3,516 → X2;
8)2F616 → X8;
9)DA.5216 → X10;
10)3758 → X2;
11)642, 538 → X10;
12)477.338 → X16;
2. Записать в форме с фиксированной точкой числа, представленные в формате с плавающей точкой:
1)0.1E–05;
2)– 5.378E4;
3)2.3006E+03
4)6.4153E+02;
5)1.7841E+04:
6)– 7.4385E+00;
7)0.13E– 10;
8)– 4.19221E+03;
9)2.5E+09.
26
3. Представить числа в формате с плавающей точкой:
1)56.278;
2)0.341;
3)7.8901;
4)– 0.3456;
5)– 51.271;
6)– 0.0059;
7)3921.74;
8)– 8877.6655;
9)395.786.
4. Выполнить сложение и вычитание двоичных чисел X и Y:
1)X = 11101, Y = 1011;
2)X = 1001, Y = 100;
3)X = 110011, Y = 10110;
4)X = 1011001, Y = 110;
5)X = 1101, Y = 11;
6)X = 10111, Y = 10101.
5. Найти разность двоичных чисел X и Y, заменив операцию вычитания сложением в обратном и дополнительном кодах:
1)X = 1001, Y = 11;
2)X = 11001, Y = 1011;
3)X = 1010, Y = 1110;
4)X = 1101, Y = 111;
5)X = 1011, Y = 1001;
6)X = 1111, Y = 1101.
6. Перемножить двоичные числа, проверив результат умножения делением:
1)X = 1011, Y = 1001;
2)X = 110, Y = 11;
3)X = 11001, Y = 101;
4)X = 11011, Y = 1101.
27
2. ЛОГИЧЕСКИЕ ОСНОВЫ РАБОТЫ ЭВМ
2.1. Основные понятия алгебры логики
Логика является одной из основных дисциплин, образующих математический фундамент информатики.
Математическая логика – современная форма логики, которая полностью опирается на формальные математические методы.
Алгебра логики – раздел математической логики, изучающий строение сложных логических высказываний и способы установления их истинности с помощью алгебраических методов.
Основное понятие алгебры логики — высказывание. Высказы- вание — некоторое предложение, о котором можно утверждать, что оно истинно или ложно. Например, высказывание «Волга впадает в Каспийское море» истинно, а о высказывании «на улице идет дождь» можно сказать, истинно оно или ложно, если указаны дополнительные сведения о погоде в данный момент.
Любое высказывание можно обозначить символом х и считать, что x = 1, если высказывание истинно, а х = 0 – если высказывание ложно.
Логическая (булева) переменная – такая величина х, которая мо-
жет принимать только два значения: х = {0, 1}.
Высказывание абсолютно истинно, если соответствующая это-
му высказыванию логическая величина принимает значение х = 1 при любых условиях. Пример абсолютно истинного высказывания
– высказывание «Земля – планета Солнечной системы».
Высказывание абсолютно ложно, если соответствующая этому высказыванию логическая величина принимает значение х = 0 при любых условиях.
Например, высказывание «Земля – спутник Марса» абсолютно ложно.
Логическая функция (функция алгебры логики) – функция f(х1, x2, …, xn), принимающая значение, равное нулю или единице на наборе логических переменных x1, x2, …, xn [1].
28
2.2. Элементарные функции алгебры логики и их свойства
Логические функции от одной переменной представлены в табл. 2.
Таблица 2
Таблица истинности для функции одной переменной
|
X |
|
f1(x) |
f2(x) |
f3(x) |
f4(x) |
|
|
|
|
|
|
|
|
|
|
0 |
|
1 |
0 |
0 |
1 |
|
|
1 |
|
1 |
0 |
1 |
0 |
|
|
|
|
|
|
|
|
|
Функция |
f1(x) является абсолютно истинной (константа едини- |
||||||
цы). |
|
|
|
|
|
|
|
Функция f2(x) – абсолютно ложная функция (константа нуля). |
|||||||
Функция |
f3(x), повторяющая значения логической переменной, |
||||||
– тождественная функция [ f3(x) ≡ х]. |
|
|
|
Функция f4(x), принимающая значения, обратные значениям х, – логическое отрицание, или функция НЕ (обозначается f4(x) = ¬ х =
= x ).
Логические функции от двух переменных представлены в табл. 3.
|
|
|
|
|
|
|
|
Таблица 3 |
||
|
Таблица истинности для функции от двух переменных |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
f5 |
f6 |
f7 |
f8 |
F9 |
f10 |
|
F11 |
|
x1 |
x2 |
x1 Ù x2 |
x1 Ú x2 |
x1 ® x2 |
x1 Å x2 |
x1 Û x2 |
x1 | x2 |
x1 ↓ x2 |
|
|
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
29
Конъюнкция (логическое умножение) – функция f5(x1, x2), кото-
рая истинна только тогда, когда и х1, и x2 истинны. Конъюнкцию часто называют также функцией И и условно обозначают так:
f5(x1, x2) = x1 x2= x1 · x2= x1 & x2.
Дизъюнкция (логическое сложение) – функция f6(х1, x2), которая истинна тогда, когда истинны или х1, или х2, или обе переменные. Дизъюнкцию называют также функцией ИЛИ и условно обозначают так:
f6(x1, x2) = x1 + x2= x1 x2.
Импликация — функция f7(x1, x2), которая ложна тогда и только тогда, когда x1 истинно и x2 ложно. Условное обозначение f7(x1, x2) =
= x1 → x2 .
Функция сложения по модулю 2 – функция f8(x1, x2), которая ис-
тинной, когда истинны или х1, или x2 в отдельности. Условное обо-
значение этой функции: f8(x1, x2) = x1 Å x2.
Штрих Шеффера – функция f10(x1, x2), которая ложна тогда и только тогда, когда x1 и x2 истинны. Условное обозначение функции Шеффера: f10(x1, x2) = x1 / x2. Другое название функции НЕ И.
Функция Пирса (Вебба) – функция f11(x1, x2), которая истинна только тогда, когда x1 и x2 ложны. Условное обозначение этой функции: f11(x1, x2) = x1 ↓ x2 . Другое название функции НЕ ИЛИ.
Две функции равносильны друг другу, если принимают на всех возможных наборах переменных одни и те же значения:
f1(x1, x2, … , xn) = f2(x1, x2, … , xn).
Булевы переменные могут быть действительными или фиктивными. Переменная xi действительна, если значение функции f(x1, … , xi, … , xn) изменяется при изменении xi. Переменная xi фиктив-
30