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

[Alekseev_A.P.]_Informatika_2015(z-lib.org)

.pdf
Скачиваний:
251
Добавлен:
26.01.2020
Размер:
8.07 Mб
Скачать

Арифметические и логические основы работы ЭВМ

31

__________________________________________________________________________________

Пример 7. Перевести число 7D2.EH из шестнадцатеричной СС в дво-

ичную СС.

 

 

 

 

 

Решение.

Переводимое число

Результат

 

 

 

(7

D

2.

E)16 = (11111010010.111)2

 

 

 

 

 

 

 

0111

1101

0010.

1110

 

 

Отмеченные крайние нули следует отбросить. Рассмотрим ещё одно правило:

Для перехода от двоичной СС к восьмеричной (или шестна-

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

теричной) цифрой.

Пример 8. Перевести число 111001100.001В из двоичной СС в восьмеричную СС.

Решение.

Переводимое число

Результат

(111

001

100.

001)2

= (714.1)8

 

 

 

 

 

7

1

4.

1

 

Пример 9. Перевести число 10111110001.001В из двоичной СС в шестнадцатеричную СС.

32

Арифметические и логические основы работы ЭВМ

__________________________________________________________________________________

Решение.

 

 

 

 

Переводимое число

 

Результат

(0101

1111

0001.

0010)2

= (5F1.2)16

 

 

 

 

 

5

F

1.

2

 

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

Пример 10. Перевести число 11011.11В из двоичной СС в десятичную

СС.

Решение.

(11011.11)2 = 1 24 + 1 23 + 0 22 + 1 21 + 1 20 + 1 2-1 + 1 2-2 = = 16 + 8 + 0 + 2 + 1 + 0.5 + 0.25 = (27.75)10.

Для перевода шестнадцатеричного числа в десятичную СС следует представить число в виде полинома, подставить в него известные коэффициенты и вычислить сумму.

Пример 11. Перевести шестнадцатеричное число 2E5.AH в десятичную СС.

Решение.

(2E5.A)16 = 2 162 + 14 161 + 5 160 + 10 16-1 = (741.625)10.

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

Логические основы работы ЭВМ

33

__________________________________________________________________________________

2.2.Логические основы работы ЭВМ

-А почему «операция Ы»?

-Чтобы никто не догадался.

Из фильма «Операция «Ы» и

другие приключения Шурика».

Для описания работы аппаратных и программных средств ЭВМ используется алгебра логики или, как ее часто называют, булева алгебра. Основоположником этого раздела математики был Джордж Буль.

Булева алгебра оперирует с логическими переменными, которые могут принимать только два значения: истина или ложь, обозначаемые соответственно 1 и 0.

Как ранее отмечалось, основной системой счисления ЭВМ является двоичная СС, в которой также используются только две цифры: 1 и 0. Таким образом, одни и те же цифровые устройства ЭВМ могут применяться для выполнения арифметических и логических операций. Это обуславливает универсальность (однотипность) схемной реализации процесса обработки информации в ЭВМ.

Логические операции широко используются при аппаратной реализации самой ЭВМ и при программной реализации многих приложений (например, слияние объектов в векторных графических редакторах осуществляют с помощью логических операций И, ИЛИ, И-НЕ).

Совокупность значений логических переменных x1, x2, ..., xn называется набором переменных.

Логической функцией от набора логических переменных (аргументов) F(x1, x2, ..., xn ) называется функция, которая может принимать только два значения: истина или ложь (1 или 0). Любая логическая функция может быть задана с помощью таблицы истинности, в левой части которой записываются возможные наборы аргументов, а в правой части — соответствующие им значения функции. Логическую функцию порой называют функцией алгебры логики (ФАЛ).

Ниже приведена таблица истинности для логической функции «Равнозначность».

Аргументы

Функция

x2

x1

F

0

0

1

0

1

0

1

0

0

1

1

1

34 Логические основы работы ЭВМ

__________________________________________________________________________________

В случае большого числа аргументов табличный способ задания функции алгебры логики становится громоздким, поэтому ФАЛ удобно выражать через другие, более простые ФАЛ.

Общее число ФАЛ n переменных определяется возведением числа 4 в степень n, т. е. 4n. Существуют четыре ФАЛ одной логической переменной.

Таблица 1

x

F0(x)

F1(x)

F2(x)

F3(x)

0

0

0

1

1

1

0

1

0

1

Функции F0(х) = 0 и F3(х) = 1 являются константами (функции не изменяются при изменении аргумента). Функция F1(х) = х повторяет значение аргумента х. Функция F2(x) называется отрицанием переменной или инверсией и обозначается так:

F2(x) = x .

Число ФАЛ двух переменных x1 и x2 равно 16: F0(x) ... F15(x). Шесть функций являются вырожденными: F0(x) = 0, F3(x) = x1, F5(x) = x2, F10(x) = x2 ,

F12(x) = x1 , F15(x) = 1.

Из оставшихся десяти логических функций широкое распространение имеют функции F1(х) (конъюнкция, логическое умножение, логическая операция И) и F7(х) (дизъюнкция, логическое сложение, логическая операция ИЛИ), которые совместно с функцией инверсии составляют функционально полную систему логических функций. С помощью этих трех функций можно представить (аналитически выразить) любую сколь угодно сложную логическую функцию. Очень важной для вычислительной техники и информатики является логическая функция Исключающее ИЛИ (неравнозначность, сложение по модулю два). Ниже приведены таблицы истинности для трех функций и их условные обозначения.

 

 

 

x2

x1

x2 x1

x2 x1

x2 x1

Инверсия

 

дизъюнк.

конъюнк.

неравноз.

 

 

 

х

x

 

0

0

0

0

0

0

1

 

0

1

1

0

1

1

0

 

1

0

1

0

1

 

 

 

1

1

1

1

0

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

Логические основы работы ЭВМ

35

__________________________________________________________________________________

F (a b c) (a b a) .

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

Рассмотрим аксиомы, тождества и основные законы алгебры логики. В алгебре логики рассматриваются переменные, которые могут принимать только два значения: 0 и 1. Базируется алгебра логики на отношении эквивалентности и трех упомянутых ранее операциях: дизъюнкции (синонимы — логическое сложение, операция ИЛИ), конъюнкции (логическое ум-

ножение, операция И) и отрицании (инверсия, операция НЕ). Отношение эквивалентности обозначается знаком =.

Дизъюнкция обозначается знаком , а иногда символом +.

Конъюнкция обозначается символом либо точкой, которую можно опускать.

Отрицание обозначается чертой над переменной: x . Алгебра логики определяется следующей системой аксиом: x = 0, если x 1.

x = 1, если x 0.

1

1

= 1

0

0

=

0

0

0

= 0

1

1

=

1

0 1 = 1 0 = 1

1 0 = 0 1 = 0

 

 

1

 

 

0 .

 

 

0

 

1

 

Если в аксиомах произвести взаимную замену операций дизъюнкции и конъюнкции, а также элементов 0 и 1, то из одной аксиомы данной пары получается другая. Это свойство называется принципом двойственности.

С помощью аксиом можно получить ряд тождеств:

x x 1

x x 0

0 x x

1 x x

1 x 1

0 x 0

x x x

x x x

Перечислим законы алгебры логики:

переместительный (или коммутативный)

xy y x ,

x y y x .

От перестановки местами аргументов результат не изменяется.

сочетательный (или ассоциативный)

(x y) z x ( y z) ,

36 Логические основы работы ЭВМ

__________________________________________________________________________________

(x y) z x ( y z) .

Указанные операции можно выполнять в любом порядке.

распределительный (или дистрибутивный)

x( y z) x y x z ,

xy z (x y) (x z) .

двойственности (или де Моргана)

xy x y ,

x y x y .

Инверсия от дизъюнкции дает конъюнкцию инверсий. Инверсия от конъюнкции дает дизъюнкцию инверсий.

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

x x .

поглощения

x x y x , x (x y) x .

склеивания

x y x y x ,

(x y) (x y) x .

Рассмотрим пример преобразования логических выражений.

Пример.

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

F A B (B A) 1.

Решение.

При проведении преобразований нужно использовать соотношение: x 1 x.

Этот результат получается из определения операции Исключающее ИЛИ: x y x y x y . При подстановке в это выражение y 1 , по-

лучим x 1 x.

Используя закон де Моргана, получим:

F A B (B A) .

Выражая операцию неравнозначности через конъюнкцию, дизъюнкцию и инверсию, получим:

A B A B B ( A A) B .

Арифметические основы работы ЭВМ

37

__________________________________________________________________________________

2.3.Арифметические основы работы ЭВМ

Вбинарной системе счёт ведут не по пальцам, а по кулакам.

NN

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

 

 

Таблица 1

 

 

 

Сложение

Вычитание

Умножение

0 + 0 = 0

0 – 0 = 0

0 0 = 0

0 + 1 = 1

1 – 0 = 1

0 1 = 0

1 + 0 = 1

1 – 1 = 0

1 0 = 0

1 + 1 = 10

10 – 1 = 1

1 1 = 1

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

Пример 1. Выполнить операцию арифметического сложения в двоичной системе счисления.

Решение.

 

 

 

Точками показаны переносы.

 

 

 

В устройствах, реализующих операцию

.

. . . .

 

 

арифметического сложения двоичных чисел,

13

01101

 

операнды представляют числами определен-

+ 7

+ 00111

 

ной разрядности (одинаковой для обоих опе-

20

10100

 

рандов). При этом неиспользуемые старшие

 

10

2

разряды заполняются нулями. Также запол-

 

 

 

няются нулями младшие разряды дробной

 

 

 

 

 

 

части вещественного числа (справа от точки).

 

Следует заметить, что в реальных ЭВМ чаще всего используются 32-,

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

 

 

 

Пример 2. Выполнить опера-

 

 

 

цию арифметического сложения двух

.

. . . . .

 

 

вещественных чисел в двоичной сис-

55,25

0110111.01

 

теме счисления.

+ 19,5

+ 0010011.10

 

Решение.

74,75

1001010.11

 

Результаты сложения двух чи-

 

10

2

сел показаны на рисунке слева. При

 

 

 

сложении вещественных чисел в об-

 

 

 

38 Арифметические основы работы ЭВМ

__________________________________________________________________________________

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

Умножение двоичных многоразрядных чисел производится путем образования частичных произведений и последующего их суммирования. Каждое частичное произведение равно нулю, если в соответствующем разряде множителя стоит 0, или равно множимому, сдвинутому на соответствующее число разрядов влево, если в разряде множителя стоит 1.

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

Пример 3. Перемножить в двоичной СС числа 7,5D и 5D.

Решение.

 

 

 

111.1

 

 

 

 

множимое

 

 

 

 

x 101

 

 

 

 

 

7,5

 

 

 

 

x

множитель

 

 

1111

 

 

 

 

 

 

 

 

 

1-е част. произв.

 

x 5

 

+ 0000

 

 

 

 

 

 

+ 2-е част. произв.

 

37,5

 

1111 .

 

 

 

.

 

 

 

 

3-е част. произв.

 

 

10

100101.1

 

 

 

 

 

2

 

 

п р о и з в е д е н и е

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Пример 4. Выполнить деление в двоичной СС десятичного числа 65D на число 5D.

Арифметические основы работы ЭВМ

39

__________________________________________________________________________________

Полученный результат 1101B = 13D свидетельствует о верности выполненной операции деления.

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

ВВТ применяют прямой, обратный и дополнительный коды.

Прямой двоичный код Рпр(х) — это такое представление двоичного числа х, при котором знак «+» кодируется нулем в старшем разряде числа, а знак «–» — единицей. При этом старший разряд называется знаковым. Остальные разряды двоичного числа называются значащими.

Например, числа +5D и –5D, представленные в прямом четырёхразрядном двоичном коде, выглядят так: +5D = 0'101B; –5D = 1'101B. Здесь апострофом условно (для удобства определения знака) отделены знаковые разряды.

Обратный код Робр(х) получается из прямого кода по следующему правилу:

0' Pпр(х),

при х 0

Робр(х) =

 

 

 

 

 

1' Pпр(х),

при х 0.

Из приведенного выражения видно, что обратный код для положительных чисел совпадает с прямым кодом. Чтобы представить отрицательное двоичное число в обратном коде, нужно поставить в знаковом разряде 1, во всех значащих разрядах заменить 1 на 0, а 0 на 1. Такая операция называется инверсией и обозначается горизонтальной чертой над инвертируемым выражением (см. раздел «Логические основы работы ЭВМ»).

Пример 5. Получить обратный код для числа х = –11D.

Решение.

Рпр(х) = 1'10112

Робр(х) = 1'01002.

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

Дополнительный код Рдоп) образуется следующим образом:

0' Pпр(х),

при х 0

Рдоп(х) =

 

 

 

1' Pпр(х) + 1,

при х 0.

40 Арифметические основы работы ЭВМ

__________________________________________________________________________________

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

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

 

 

Pдоп ( x ) Pобр ( x ) 1 .

 

Пример 6. Получить дополнительный код для числа х = –14D.

Решение.

 

 

 

 

Рпр(х) = 1'11102

 

прямой код

 

Робр(х) = 1'00012

 

обратный код

 

Рдоп) = 1'00102

 

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

 

В табл. 2 представлены прямые, обратные и дополнительные коды чи-

сел в диапазоне от –7D до +7D.

 

 

 

 

 

 

 

 

Таблица 2

 

 

 

 

 

 

Десятичное

 

Рпр(х)

 

Робр(х)

Рдоп)

число х

 

 

 

 

 

0

 

0'000

 

0'000

0'000

1

 

0'001

 

0'001

0'001

2

 

0'010

 

0'010

0'010

3

 

0'011

 

0'011

0'011

4

 

0'100

 

0'100

0'100

5

 

0'101

 

0'101

0'101

6

 

0'110

 

0'110

0'110

7

 

0'111

 

0'111

0'111

-0

 

1'000

 

1'111

-1

 

1'001

 

1'110

1'111

-2

 

1'010

 

1'101

1'110

-3

 

1'011

 

1'100

1'101

-4

 

1'100

 

1'011

1'100

-5

 

1'101

 

1'010

1'011

-6

 

1'110

 

1'001

1'010

-7

 

1'111

 

1'000

1'001

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