4) Операции сравнения: < , > , <= , >= , == , != - результат типа int.
5) Поразрядные операции : & , | , ^
6) Операция последовательного вычисления : , - предписывает последовательное вычисление выражений.
- Операции сдвига:
<< , >> - сдвигает последовательность битов первого операнда влево или вправо на количество бит, равное второму операнду.
При сдвиге влево правые освободившиеся разряды заполняются нулями, при сдвиге вправо (>>) левые освободившиеся биты заполняются нулями, если операнд беззнаковый, если знаковый, то копией знакового бита.
Пример:
11(10)=00001011(2)
11<<2à00101100=44
11>>2à00000010=2
Эти операции можно использовать для быстрого деления или умножения на 2встепени n.
<операнд>>>nà<операнд> / 2n
<операнд>>>nà<операнд> * 2n
Особенности вычисления логических выражений.
Выражение – последовательность операндов, разделителей и знаков операций задающих вычисление. Вычисление выражений осуществляется слева на право с учетом скобок. Вычисление логического выражения прекращается как только результат выражения становится определенным. Этот метод вычисления называется методом усечений.
((b!=0)&&(a/b>x)) Если значение выражения1=0, то значение выражения2 не вычисляется, т.к. значение выражения2 на результат не влияет.
выражение1 выражение2
((a>b) || (a>d)) Если выражение1=0, то второе не вычисляется.
выражение1 выражение2
Побитовые операции.
Побитовое “и” - &
Побитовое “или” -|
Исключенное “или” - ^ (эквиваленция)
Пример:
12 = 00001100 12&10 = 00001000=8
10 = 00001010 12 | 10 = 00001110=14
12 ^10 = 00000110=6
Последовательность вычисления выражений.
<выражение1>,<выражение2>
Вычисляется значение выражения1, затем значение выражения2 и результат всей операции равен значению 2-ого выражения. Используется в тех случаях, когда по синтаксису языка требуется одно выражение, а по логике программы требуется вычислить несколько.
п.6.3.Тернарная операция.(условная операция)
<операнд1>?<операнд2>:<операнд3>
Вычисляется операнд1, если он не равен нулю, то вычисляется операнд2 и значением выражения становится его значение, иначе вычисляется операнд3 и значением выражения становится его значение. Выражение советуется брать в фигурные скобки.
Примеры использования условной операции.
1) #include<stdio.h>
main()
{ int i=6, j=4;
int result=(i<j)?i:j;
printf("%d\n", result);}
2) #include<stdio.h>
main()
{ int i=6, j=4;
(i<j)?printf("i<j\n"):printf("i>=j\n");}
3) #include<stdio.h>
main()
{ int i=3, j=5;
printf("Минимум из %d и %d – это%d\y", i,j,(i<j)?i:j;}
п.6.4.Операции присваивания.
Операции присваивания в языке Си могут быть бинарными и унарными.
1) ++ - инкремент (увеличение на 1) могут записываться как перед операндом
- - - декримент(уменьшение на 1) (префиксная), так и после (постфиксная)
Для префиксной формы сначала увеличиваем или уменьшаем на 1 значение, а затем это измененное значение участвует в вычислении. Для постфиксной формы – рперанд сначала участвует в вычислении выражения, а потом изменяется на 1.
Пример:
if(++x>0)
if(x++>0)
2) "=" – простое присваивание.
<операнд1>=<операнд2>
Операция присваивания вырабатывает результат, который может быть использован в дальнейшем вычислении выражения. В отличии от других языков в Си операция присваивания может использоваться в выражениях: if((f=x-y)>0) printf("число х больше у")
3) Составное присваивание:
+= *= <<= &= -= /= >>= |= ^=
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.