Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций.DOC
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
268 Кб
Скачать
☆

Операции отношения и логические операции.

Операции отношения используются для сравнения:

<

меньше

<=

меньше или равно

>

больше

>=

больше или равно

= =

равно

!=

не равно

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

& & и (and)

| | или (or)

! не (not)

Таблица истинности для логических операций

x

y

x && y

x | | y

! x

x ^ y

0

0

0

0

1

0

0

1

0

1

1

1

1

0

0

1

0

1

1

1

1

1

0

0

Операции отношения и логические имеют более низкий приоритет, чем арифметические операции. Это значит, что выражение 12>10+1 аналогично выражению 12>(10+1)

Среди логических операций – старшая операция отрицания, затем выполняются операции отношения, а затем логические «И», «ИЛИ» и т.д.

Каждое условное выражение проверяется, истинно оно или ложно, причем в языке нет логического (булевого) типа, поэтому результатом логического выражения является целочисленное арифметическое выражение: ложь – 0, истина – ненулевая величина (1)

Пример:

#include <iostream. h>

void main(void)

{

int tr, fal;

tr = (101<=105); //выражение истинно

fal = (101>105); //выражение ложно

cout << true << tr << false << fal << endl;

}

Результат:

true 1 false 0

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

Побитовые операции позволяют обеспечить доступ к каждому биту информации. При их выполнении сравниваются не значения выражений, как в логических операциях, а значения каждой пары разрядов (битов). Часто поразрядные операции используются в драйверах устройств, программах, связанных с принтером, модемом и др. Поразрядные операции удобны для хранения информации в сжатом виде ― в виде флагов (включено, выключено, 0 или 1). В одном байте можно хранить 8 флагов. Например, проверка установлен ли флаг в 2-ом разряде переменной а:

i

f (a & 04) cout << “ флаг во 2-ом разряде выставлен”;

Флаг в 6-ом разряде РС внешнего устройства означает «разрешение прерывания»

if (a & 0100) cout << “ прерывания разрешены”

Сдвиг вправо на 1 разряд аналогичен операции деления на 2 в 8 с/с

128 : 2 = 5

001010>>1 000101

108 : 2 = 4

00001000>>1

Сдвиг вправо ― аналогичен операции умножения на 2 в 8 с/с

Пример: написать программу для вычисления функции

#include <iostream.h>

#include <math.h>

void main(void)

{

const pi = 3.1415;

float x=3. 3, f ;

f=exp(x*sqrt(2))*cos(sqrt(x/3)+pi/4)/(pow(2*pi*x,1./3.)+log(atan(x)));

cout<<”f=”<<f;

}

Для каждой операции определено количество операндов: один операнд― унарная операция, два операнда―бинарная операция, например, операции сложения или вычитания