Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Основы программирования на Си.doc
Скачиваний:
386
Добавлен:
02.05.2014
Размер:
1 Мб
Скачать

Операции, уровень приоритета которых равен 5

Уровень приоритета операций сдвига равен 5. Порядок выполнения операций - слева направо.

Операция сдвига влево: <<

Тип операнда - интегральный. Тип результата - такой же, как у левого операнда. Правый операнд преобразуется к типу int. Левый операнд сдвигается на число разрядов, равное значению правого операнда. Освобождающие разряды заполняются нулями.

Использование:

ie1<<ie2

Двоичное представление ie1 сдвигается влево на ie2 разрядов, освобождающие разряды заполняются нулями.

Пример:

four=x<<2;

Операция сдвига вправо: >>

Тип операнда - интегральный. Тип результата - такой же, как у левого операнда. Правый операнд преобразуется к типу int. Левый операнд сдвигается на число разрядов, равное значению правого операнда. Сдвиг будет логическим сдвигом, если левый операнд имеет тип unsigned.

Использование:

ie1>>ie2

Двоичное представление ie1 сдвигается вправо на ie2 разрядов. Сдвиг вправо может быть арифметическим (т. е. освобождающиеся слева разряды заполняются значениями знакового разряда) или логическим в зависимости от реализации, однако гарантируется, что сдвиг вправо целых чисел без знака будет логическим, и освобождающиеся слева разряды будут заполняться нулями.

Пример:

x=x>>3;

Операции, уровень приоритета которых равно 6

Уровень приоритета операций отношения равен 6. Выполняются эти операции слева направо.

Операция меньше: <

Тип операндов - арифметический или указатель. Тип результата - int.

Использование:

ae1<ae2

Истина, если ae1 меньше, чем ae2.

Пример:

if(x<0) printf("negative");

Операция больше: >

Тип операндов - арифметический или указатель. Тип результата - int.

Использование:

ae1>ae2

Истина, если ae1 больше, чем ae2.

Пример:

if(x>0) printf("positive");

Операция меньше или равно: <=

Тип операндов - арифметический или указатель. Тип результата - int.

Использование:

ae1<=ae2

Истина, если ae1 меньше или равно ae2.

Операция больше или равно: >=

Тип операндов - арифметический или указатель. Тип результата - int.

Использование:

ae1>=ae

Истина, если ae1 больше или равно ae2.

Операции, уровень приоритета которых равен 7

Уровень приоритетов операций равенства/неравенства равен 7, выполняются они слева направо.

Операция равенство: ==

Тип операндов - арифметический или указатель. Тип результата - int.

Использование:

ie1==ie2

Истина, если ie1 равно ie2, иначе - ложь.

Операция неравенство: !=

Тип операндов - арифметический или указатель. Тип результата - int.

Единственным целым значением, с которым можно сравнивать указатели, является нулевое значение!

Использование:

ie1!=ie2

Истина, если ie1 не равно ie2.

Пример:

while (i!=0)

i=func;

Операция, уровень приоритета которой равен 8

Уровень приоритета операции поразрядное И равен 8. Выполняются такие операции слева направо.

Операция поразрядное И: &

Тип операндов - интегральный. Тип результата: int, long, unsigned.

Использование:

ie1 & ie2

Побитовая операция И двоичных представлений ie1 и ie2. Значение выражения содержит 1 во всех разрядах, в которых и ie1 и ie2 содержат 1, и 0 во всех остальных разрядах.

Пример:

flag=((x&mask)!=0);