Lesson11
Наряду с обычными логическими операция над логическими типами Boolean, часто приходятся выполнять операции и над отдельными битами, обычно используемыми, как флаги. Для эффективной работы необходимо понятие логических операций. Паскаль поддерживает следующие логические операции
Каждый бит может иметь только два состояния ЛОЖЬ (FALSE) или ИСТИНА (TRUE)
Состояние бита можно описывать и другими словами, часть которых пришла из математики, часть из электроники, часть из логики.
Для значения ЛОЖЬ, альтернативные варианты такие - [НЕТ, НОЛЬ, ВЫКЛЮЧЕНО, НЕ УСТАНОВЛЕНО, СБРОШЕНО, FALSE, F, 0, -] и другие.
Для значения ИСТИНА, альтернативные варианты такие - [ДА, ЕДИНИЦА, ВКЛЮЧЕНО, УСТАНОВЛЕНО, ВЗВЕДЕНО, TRUE, T, 1, +] и другие.
Рассмотрим эти операции по отдельности AND - логическое И, эта операции выглядит так
A | B | Y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
OR - (включающие) логическое ИЛИ, эта операции выглядит так
A | B | Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
XOR - (исключающие) логическое ИЛИ, эта операции выглядит так
A | B | Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
NOT - отрицание или инверсия бита, эта операции применяется только к одному биту, действие простое — текущее значение бита изменяется на противоположное
A | Y |
0 | 1 |
1 | 0 |
SHL - логический сдвиг влево, операции применяется только к группе битов, одного из целочисленных типов Паскаля, например к байту, слову и т.д. Сдвиг байта влево на один разряд.
Разряды | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
До | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
После | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 |
Сдвиг байта влево на два разряда
Разряды | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
До | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
После | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
Байт смещается влево на один или более разрядов, позиции справа замещаются нулями, позиции слева теряются.
SHR - логический сдвиг вправо, операции применяется только к группе битов, одного из целочисленных типов Паскаля, например к байту, слову и т.д.
Сдвиг байта вправо на один разряд.
Разряды | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
До | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
После | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
Сдвиг байта вправо на два разряда.
Разряды | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
До | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
После | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
Байт смещается вправо на один или более разрядов, позиции слева замещаются нулями, позиции справа теряются.