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

Операции, уровень приоритета которых равен 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);