Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базовий курс языка C.doc
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
307.2 Кб
Скачать

3.2 Операторы отношений и сравнение на равенство

Бинарные операторы:

    • отношений :>,> =, <, <= (одинаковый приоритет);

    • сравнение на равенство : = =,! = (одинаковый приоритет).

Приоритет

prio (отношений)> prio (сравнение на равенство)

prio (отношений) <prio (арифметические)

Пример 2:

k +1 <l +2 = (k +1) <(l +2) year% 4 = = 0

Результат

- "Ложь" - 0;

- "Истина" - 1.

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

3.3 Логические операторы

3.3.1 Бинарные

& & логическое i (/ \);

| | -логическое или (\ /).

- Операнды вычисляются слева направо до выяснения истинности результата:

- Результат & & - "ложь", если хоть один операнд "ложь";

- Результат | | - "истина", если хоть один операнд "истина";

- Лiвоасоциативнi

Приоритет

prio (& &)> prio (| |)

prio (&&,| |) <prio (отношений, сравнение на равенство)

 

3.3.2 Унарный оператор !

логического отрицания:

Приоритет

prio (!)> prio (& &, | |)

Пример 3:

/ * эквиваленты: * /

(res = = 0) и! res

3.4 Побитовые операторы

Применяются к символьного или цiлочисельного типа данных (char, short, int, long) знакового или беззнакового.

- Бинарные операторы

3.4.1 Побитовое i ( & )

- Для обнуления некоторых разрядов.

Пример 4:

maska ​​1 = 017;

p = p & maska ​​1;

maska ​​обнуление 0-11 разрядов, а младшие (12-15) остаются такими, какими они были в числе р .

г) maska

 

10101 ... 10101 00000 ... 01111

00000 ... 00101

017

 

 

 

 

3.4.2 Побитовое или ( | )

- Для установки разрядов в 1.

Пример 5:

maska ​​2 = 03;

m = m | maska ​​2;

m) maska

 

10101 ... 10101 00000 ... 00011

10101 ... 10111

 

 

 

 

3.4.3 Побитовое или, что исключает ( ^ )

Пример 6:

x = 0177;

y = 01;

x ^ y = / * = 0000 ... 1111110 * /

 

^

 

0000000001111111 0000000000000000

0000000001111110

X Y= 176

 

 

 

 

3.4.4 Сдвиг влево <<

Правый операнд:> 0 и целое число.

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

Пример 7:

x = 02; / * 010 * /

y = x <<1; / * = 0100 = 4 * /

z = x <<2; / * = 01000 = 8 * /

Сдвиг влево соответствует умножению входного числа на степень 2, показатель которого задан правым операндом.

3.4.5 Сдвиг вправо >>

Правый операнд:> 0 и целое число.

Пример 8:

x = 06; / * 1102 * /

y = x>> 1; / * 112 = 3 * / z = x>> 2; / * 12 * /

Сдвиг вправо соответствует цiлочисельному делению входного числа на степень 2, показатель которой задан правым операндом.

- Унарный оператор побитовое отрицание ~

Пример 9:

c = c & ~ 03;

03: 000 .......... 011

~ 03: 111 .......... 100

c CnCn-1Cn-2 ... C00

3.5 Операторы присваивания

3.5.1 Самый оператор присваивания

<V> = <e>

где <V> - переменная;

<e> - выражение;

- Семантика : значением выражения, в который входит присваивания, является значение левого операнда после присваивания.

- Iнфiксний

- Бинарный

- Правоасоциативний .

Приоритет

prio (=) <prio (всех изученных)