Примеры.

Число: –1. Число: –127

Код модуля числа: 00000001 Код модуля числа: 01111111

Обратный код числа: 11111110 Обратный код числа : 10000000

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

Дополнительный код числа –1: Дополнительный код числа –127:

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

Отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа [31].

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

 

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

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

A = m× qn,

где т – мантисса числа; q – основание системы счисления; п –порядок числа.

Для однозначности представления чисел с плавающей запятой используется нормализованная форма, при которой мантисса отвечает условию

1/n = ½m½ < 1.

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

Пример.Преобразуем числа в экспоненциальную форму с нормализованной мантиссой:

421,637 = 0,421637 ´ 103; 0,000286 = 0,286 ´ 10-4.

Число в форме с плавающей запятой занимает в памяти компьютера 4 или 8 (зависит от точности) байт. При записи числа с плавающей запятой выделяют разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.

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

После выполнения операции выравнивания одинаковые разряды чисел оказываются расположенными в одних и тех же разрядах ячеек памяти. Теперь операции сложения и вычитания чисел сводятся к сложению или вычитанию мантисс.

После выполнения арифметической операции для приведения полученного числа к стандартному формату с плавающей запятой производится нормализация, т.е. мантисса сдвигается влево или вправо так, чтобы ее первая значащая цифра попала в первый разряд после запятой [14].

Пример.Произвести сложение чисел 0,1 × 23 и 0,1 × 25 в формате с плавающей запятой.

Произведем выравнивание порядков и сложение мантисс:

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

Пример.Произвести умножение чисел 0,1 ´ 23 и 0,1 ´ 25 в формате с плавающей запятой. После умножения будет получено число 0,01 ´ 28, которое после нормализации примет вид 0,1 ´ 27.

 
 

Лекция 4

 


Логические основы компьютера

 

4.1. Логические выражения и логические операции

Логика – наука о законах и формах мышления. К основным понятиям логики относятся нижеперечисленные.

Высказывание (суждение) – некоторое предложение, которое может быть истинно (верно) или ложно. Например, высказывание «сегодня хорошая погода» является истинным, если светит солнце, нет ветра и дождя и т.д. В противном случае это же высказывание будет ложным.

Утверждение – суждение, которое требуется доказать или опровергнуть, например, сумма внутренних углов треугольника равна 180°.

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

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

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

Для обработки логических выражений в математической логике была создана алгебра высказываний, или алгебра логики. Основы такой алгебры были заложены в трудах английского математика Джорджа Буля (XIX в.), булева алгебра.

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

Логическая операция конъюнкция

 

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

Конъюнкция определяет соединение двух логических выражений (высказываний) с помощью союза И. Эта операция называется также логическим умножением и обозначается символами & или ^.

Рассмотрим таблицу истинности.

 

A B A&B

 

Логическая операция дизъюнкция

 

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

Эта операция называется также еще логическим сложением и обозначается значком v. Рассмотрим таблицу истинности.

 

A B AÚB

 

В соответствии с таблицей истинности можно дать определение.

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

Логическая операция отрицание (инверсия)

 

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

Данная операция означает, что к исходному логическому выражению добавляется частица НЕ или слова НЕВЕРНО, ЧТО.

Операция отрицание обозначается символом ┐(¬), а ее результат определяется следующей таблицей истинности:

 

A A

 

Логическая операция импликация (логическое следование)

 

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

Для ее обозначения в алгебре логики используется значок следования =>. Результат операции импликации для условия А (первое логическое выражение) и условия В (второе логическое выражение) определяется в соответствии со следующей таблицей истинности:

 

A B AB

По определению результатом импликации является ЛОЖЬ тогда и только тогда, когда условие (А) истинно, а следствие (В) ложно.

Логическая операция эквивалентность
(равнозначность)

 

Данная операция определяет результат сравнения двух простых логических выражений А и В, обозначается символом <=>. Результат этой операции – новое логическое выражение, которое является истинным тогда и только тогда, когда оба исходных выражения одновременно истинны или ложны.

Таблица истинности:

 

A B AB

 

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

Пусть, например, А, В и С – три простых логических выражения. Одним из примеров составленного из них сложного логического выражения будет

D = Ù (BÚC).

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

1) инверсия – 1;

2) конъюнкция – & (или л);

3) дизъюнкция – Ú;

4) импликация – =>;

5) эквивалентность – <=>.

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

Построим таблицу истинности для заданного сложного логического выражения:

 

A B C BÚC Ù(BÚC)

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

 

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

Закон тождества. Всякое высказывание тождественно самому себе:

A = A.

Закон непротиворечия.Высказывание не может быть одновременно истинным и ложным. Если высказывание Л истинно, то его отрицание не А должно быть ложным. Следовательно, логическое произведение высказывания и его отрицания должно быть ложно:

А & = 0.

Закон исключенного третьего.Высказывание может быть либо истинным, либо ложным, третьего не дано. Это означает, что результат логического сложения высказывания и его отрицания всегда принимает значение «истина»:

А Ú= 1.

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

= А.

Законы де Моргана:

&

Ú.

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

 

Логическое умножение Логическое сложение
А&В = В&А АÚВ = АÚВ

 

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

 

Логическое умножение Логическое сложение
(А&В)&С = А&(В&С) (АÚВС = АÚ(ВÚС)

 

Закон дистрибутивности. В отличие от обычной алгебры, где за скобки можно выносить только общие множители, в алгебре высказываний можно выносить за скобки как общие множители, так и общие слагаемые [14]:

 

Дистрибутивность умножения относительно сложения Дистрибутивность сложения относительно умножения
ab + ac = a(b + c)в алгебре (A&B)Ú(A&C) = A&(BÚC)   (АÚВ)&(AÚC) = АÚ(В&C)

 

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

(A&B)Ú(A&).

Воспользуемся законом дистрибутивности и вынесем за скобки А:

(A&B)Ú(A&) = A&(BÚ).

По закону исключенного третьего В Ú В = 1, следовательно:

A&(BÚ) = A&1 = A.

 

4.3. Базовые логические элементы

 

Базовые логические элементы реализуют рассмотренные три основные логические операции:

– логический элемент «И» – логическое умножение;

– логический элемент «ИЛИ» – логическое сложение;

– логический элемент «НЕ» – инверсию.

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

Логический элемент «И».На входы А и В логического элемента (рис. 1) подаются два сигнала (00, 01, 10 или 11). На выходе получается сигнал 0 или 1 в соответствии с таблицей истинности операции логического умножения.

 
 


Логический элемент «ИЛИ».На входы А и В логического элемента (рис. 2) подаются два сигнала (00, 01, 10 или 11). На выходе получается сигнал 0 или 1 в соответствии с таблицей истинности операции логического сложения.

 

Логический элемент «НЕ».На вход А логического элемента (рис. 3) подается сигнал 0 или 1. На выходе получается сигнал 0 или 1 в соответствии с таблицей истинности инверсии.

 

 

4.4. Сумматор двоичных чисел

 

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

Полусумматор.При сложении двоичных чисел в каждом разряде образуется сумма, и при этом возможен перенос в старший разряд. Введем обозначения слагаемых (А, В),переноса (Р)и суммы (S).

 

Слагаемые Перенос Сумма
А В P S

 

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

P = A&B.

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

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

S = (AÚB)&().

Построим таблицу истинности для данного логического выражения и убедимся в правильности нашего предположения (табл. 5).

Таблица 5