Приоритет операций
Как было видно из урока 1, для работы с числами можно использовать математические операции, стоит уточнить, что они имеют приоритет, в таблице указаны операторы и их приоритет выполнения.
Честно признаюсь, я по памяти не помню всю эту таблицу, только наиболее употребляемые операторы.
//________________
Стоит отдельно уточнить про сокращенные арифметические операторы (16 приоритет)
c+=2; равносильно c=c+2;
с*=10; равносильно c=c*10;
//________________
Также стоит упомянуть оператор деления с остатком (%), он позволяет получить остаток от деления, например:
пример 1:
int c=11;
c%10=11/10=1
пример 2:
int c=12;
c%10=12/5=2
//________________
Также весьма интересны побитовые сдвиги << и >>
как известно любое число в вычислительном устройстве представляет собой набор бит (нулей и единиц), а типы данных типа char (рассматривали ранее) это лишь обертки, упрощающие работу программиста.
Напишем число 1 (типа unsigned char) в бинарном виде b0000 0001
unsigned char a=1; // b0000 0001
применим операцию <<1
a<<=1;
теперь a= b0000 0010 // что в свою очередь равно 2 в десятичной системе счисления
применим операцию >>1
a>>=1;
теперь a= b0000 0001 // что в свою очередь равно 1 в десятичной системе счисления
Как видно операции сдвига позволяют перемещать биты внутри числа, также это равносильно умножению/делению на 2.
//________________
Логические операторы&(на En клавиатуре shift+7) и |
Используются для изменения значений отдельных бит в байте, лучше всего смотреть по таблице истинности.
Пример использования:
unsigned char c=253; // b1111 1101
c&=0x0f;
теперь c=13 // b0000 1101