02. C/C++ Приоритет операций

Приоритет операций

Как было видно из урока 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *