
- •1.4.2 Типы и размеры данных в Си
- •1.4.3 Константы
- •1. Целые константы
- •2. Константа действительна
- •3. Символьная константа
- •4. Строчная константа
- •5. Константный выражение
- •Тема 2. Декларации
- •Тема 3. Операторы
- •3.2 Операторы отношений и сравнение на равенство
- •3.5 Операторы присваивания
- •3.5.1 Самый оператор присваивания
- •3.5.2 Другие операторы присваивания Сi
- •3.6 Iнкрементнi и декрементнi операторы
- •Тема 4. Управление
- •4.3 Переключение switch
- •4.4 Цикл While
- •4.5 Цикл for
- •4.6 Операция "," (запятая)
- •4.7 Цикл do - while
- •4.8 Инструкция break
- •4.9 Сontinue
- •4.10 Переходы и метки
- •Тема 5. Указатели и массивы
- •5.1 Указатели
- •5.2 Связь указателей и массивов
- •5.3 Связь между адресной арифметикой и индексированием массивов
- •5.4 Различие между именем массива и указателем (в роли именi массива)
- •5.5 Буквенные указатели
- •5.6 Массивы указателей
- •5.11 Функции проверки свойств символов
- •5.12 Функции преобразования строк
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 (всех изученных)