Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к ПиОА (теория).doc
Скачиваний:
97
Добавлен:
28.10.2018
Размер:
9.91 Mб
Скачать

2.4.4. Булевские операции

Результатом выполнения логических (булевских) операций является логическое значение True или False (таблица 2.7). Операндами в логическом выражении служат данные типа Boolean.

Операция

Действие

Выражение

A

B

Результат

not

Логическое отрицание

not A

TrueFalse

FalseTrue

and

Логическое И

A and B

TrueTrueFalseFalse

TrueFalseTrueFalse

TrueFalseFalseFalse

or

Логическое ИЛИ

A or B

TrueTrue FalseFalse

TrueFalseTrueFalse

TrueTrueTrueFalse

xor

Исключающее ИЛИ

A xor B

TrueTrue FalseFalse

TrueFalseTrueFalse

FalseTrueTrueFalse

Таблица 2.7. Логические операции

Результаты выполнения типичных логических операций:

Выражение

Результат

not (17 > 19)

True

(7 <= 8) or (3 < 2)

True

(7 <= 8) and (3 < 2)

False

(7 <= 8) xor (3 < 2)

True

2.4.5. Операции с битами

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

Операция

Действие

Тип операндов

Тип результата

not

Побитовое отрицание

Целый

Целый

and

Побитовое И

Целый

Целый

or

Побитовое ИЛИ

Целый

Целый

xor

Побитовое исключающее ИЛИ

Целый

Целый

shl

Сдвиг влево

Целый

Целый

shr

Сдвиг вправо

Целый

Целый

Таблица 2.8. Побитовые операции

Примеры побитовых операций:

Выражение

Результат

not $FF00

$00FF

$FF00 or $0FF0

$FFF0

$FF00 and $0FF0

$0F00

$FF00 xor $0FF0

$F0F0

$FF00 shl 4

$F000

$FF00 shr 4

$0FF0

2.4.6. Очередность выполнения операций

При выполнении выражений одни операции выполняются раньше других. Например, в выражении

20 + 40 / 2

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

Операция

Приоритет

Описание

–, not

Первый

Унарный минус, отрицаиие

*, /, div, mod, and

Второй

Операции типа умножение

+, –, or, xor

Третий

Операции типа сложение

=, <>, <,>, <=, >=

Четвертый

Операции отношения

Таблица 2.9. Приоритет операций

Чем выше приоритет (первый — высший), тем раньше операция будет выполнена.