Логические операции
Оценка 5

Логические операции

Оценка 5
docx
18.11.2021
Логические операции
Л2-002066.docx

  Логические операции

Логические операции предназначены для формирования признаков, используемых при управлении ходом выполнения программы. Эти опе- рации рассматривают операнд с точки зрения его соответствия одному из двух значений: “Истина” или ”Ложь”. Типовые логические операции:


НЕ, И, ИЛИ. Результат определяется таблицей истинности и представляет собой код, соответствующий “Истина” или ”Ложь”.

 

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

Типовые битовые операции:

-      инверсия битов (битовое НЕ),

-      битовое умножение (битовое И),

-      битовая неэквивалентность (битовое М2),

-      битовое сложение   (битовое ИЛИ).

Схемы выполнения битовых операций приведены на Рис.1.

 


 

0

1

1

0

 

 

 

 

1

0

0

1

Инверсия битов

 

 

 

 

0

1

1

0

 

 

 

 

1

0

1

0

 

 

1

1

1

0

Битовое сложение


А

 

 

 

 

 

А	1	1	0	0	А

+	+	+	+	
Å	
Å	
Å	
Å	
В	1	0	1	0	В

       	
 	
 	
 	
 	
А+В	0	1	1	0	А Å В

`А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 1.


0

0

1

1

 

 

 

 

0

1

1

0


 

0

0

1

0

Битовое умножение

 


 

 

 

 

 

Битовое сложение по модулю 2


А

 

 

 

 

 

В

 

 

 

А·В


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

Биты с 0 по 3 – цвет символа Биты с 4 по 6 цвет фона

Бит 7 признак мерцания символа

 

Обработка бит сводится к че- тырем основным задачам:

1. Проверка состояния заданного бита

2. Установка заданных бит в ну-


левое состояние

3. Установка заданных бит в единичное состояние

4. Инверсия заданных бит

 

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

 


 

1	0	1	0	1

4     3        2       1     0

 


Проверка состояния заданного бита. Маска должна содержать единицу в проверяемом бите. Остальные биты маски нули. Выполняется битовая операция И и


результат рассматривается как целое число. Если оно отлично от нуля, то бит находится в единичном состоянии, а если равно нулю – то в нуле- вом.

Пример. Проверить состояние бита с номером 1 и бита с номером 4.

1 0 1 0 1         (Исходный код)         1 0 1 0 1

· 0 0 0 1 0                 (Маска)            · 1 0 0 0 0

0 0 0 0 0             (Результат)             1 0 0 0 0

Вывод: бит с номером 1 находится в нулевом состоянии, а бит с номером 4 в единичном.

 

Установка заданных бит в нулевое состояние. Маска должна содер- жать нули в интересующих битах. Остальные биты маски единичные. Выполняется битовая операция И и ее результат записывается на место исходного кода. Единичные биты маски гарантируют сохранение состоя- ния всех бит, кроме интересующих бит.

Пример. Установить биты с номерами 1 и 2 в нулевое состояние.

1 0 1 0 1         (Исходный код)

·  1 1 0 0 1                 (Маска)

1 0 0 0 1             (Результат)

 

Установка заданных бит в единичное состояние. Маска должна со- держать единицы в интересующих битах. Остальные биты маски нуле- вые. Выполняется битовая операция ИЛИ. Результат записывается на место исходного кода. Нулевые биты маски гарантируют сохранение со- стояния всех бит, кроме интересующих бит.

Пример. Установить биты с номерами 1 и 2 в единичное состояние.

1 0 1 0 1         (Исходный код)

Ú0 0 1 1 0                 (Маска)

1 0 1 1 1             (Результат)

 

Инверсия заданных бит. Маска должна содержать единицы в интере- сующих битах. Остальные биты маски нулевые. Выполняется битовая операция М2. Результат записывается на место исходного кода. Нулевые биты маски гарантируют сохранение состояния всех бит, кроме интере- сующих бит.

Пример. Инвертировать биты с номерами 0,1 и 4.

1 0 1 0 1         (Исходный код)

Å 1 0 0 1 1                 (Маска)

0 0 1 1 0             (Результат)

 

Достаточно часто возникает задача занесения в поле заданного кода. Решение этой задачи может потребовать установки битов в разное со- стояние. В качестве примера рассмотрим задачу занесения кода 001в биты с номерами 3,2,1.

В этом случае можно использовать один из следующих методов:

1.   Последовательная установка бит сначала в одно состояние, а потом в другое.

1 0 1 0 1          (Исходный код)

Ú 0 0 0 1 0           (Маска для установки единицы)

1 0 1 1 1          (Единица занесена)

·      1 0 0 1 1           (Маска для установки нулей) 1 0 0 1 1                 (Нули занесены)


2.   Обнуление заданного поля и занесение в него кода через операцию битового ИЛИ.

Маска в этом случае должна содержать в интересующих битах заданный код. Остальные биты нулевые.

1 0 1 0 1          (Исходный код)

·   1 0 0 0 1          (Маска для обнуления) 1 0 0 0 1                (Нули занесены)

Ú 0 0 0 1 0           (Маска для занесения кода)

1 0 0 1 1          (Код занесен)

Предпочтительным является второй метод. Он обеспечивает решение задачи при заранее неизвестном по значению коде.

 


 

Логические операции Логические операции предназначены для формирования признаков, используемых при управлении ходом выполнения программы

Логические операции Логические операции предназначены для формирования признаков, используемых при управлении ходом выполнения программы

НЕ, И, ИЛИ. Результат определяется таблицей истинности и представляет собой код, соответствующий “Истина” или ”Ложь”

НЕ, И, ИЛИ. Результат определяется таблицей истинности и представляет собой код, соответствующий “Истина” или ”Ложь”

Если оно отлично от нуля, то бит находится в единичном состоянии, а если равно нулю – то в нуле- вом

Если оно отлично от нуля, то бит находится в единичном состоянии, а если равно нулю – то в нуле- вом

Обнуление заданного поля и занесение в него кода через операцию битового

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