Операции отношения и логические операции


Больше или равно   >=  
Больше   >  
Меньше или равно   <=  
Меньше   <  
Равно   ==  
Неравно   !=  
Логическое «и»   &&  
Логическое «или»   ||  
Отрицание «не»   !  

 

Логическое значение «ложь» представляется целым нулевым значением, а значение «истина» представляется любым ненулевым значением

Выражения, связанные логическими операциями && и ||, вычисляются слева направо, причем вычисление значения выражения прекращается сразу же, как только становится ясно, будет ли результат истинен или ложен.

Старшинство операции && выше, чем у операции ||.

Программа 86

#include<stdio.h>

main()

(

int x, у, z;

x=l; y=l; z=0; x=x&&y||z; printf("%d\n",x);

x=x|| !y&&z; printf("%d\n",x) ;

x=y=l; z=x++-l; printf("%d\n",x);printf("%d\n",z) ;

z+=-x++ + ++y; printf("%d\n",x) ; printf("%d\n",z);

z=x/++x; printf("%d\n",x); printf("%d\n",z) ;

}

Результат выполнения программы: 1 1 2 0 3 0 4 1

Битовые операции

 

Битовое «и» Битовое «или» Битовое исключающее «или» Сдвиг влево Сдвиг вправо Инверсия битов (унарная операция) & | ~ « » \ ~  

 

Программа 87

#include<stdio.h>

main()

(

int у, х, z, k;

x=03; y=02; z=01; k=x|y&z; printf("%d\n",k) ;

k=x|y&~z; printf("%d\n",k) ;

k=x^y&~z; printf("%d\n",k) ;

k=x&y&&z; printf("%d\n",k) ;

x=l; y=-l;

k=!x|x; printf("%d\n",k) ;

k=-x|x; printf("%d\n",k) ;

k=x^x; printf("%d\n",k) ;

x<<=3; printf("%d\n",x);

y<<=3; printf("%d\n",y);

y>>=3; printf("%d\n",y);

}

После выполнения программы получаем следующие результаты:

3 3 1 1 1 -1 0 8 -8 8 1 9 1

Выражения. Конструкции, включающие константы (литералы), переменные, знаки операции, скобки для управления порядком выполнения операций, обращения к функциям, называют выражениями.

Если в выражениях встречаются операнды различных типов,то они преобразуются к общему типу в соответствии с определенными правилами:

• переменные типа char интерпретируются как целые без знака (unsigned);

• переменные типа short автоматически преобразуются в int; если одиниз операндов имеет тип unsigned, то другой (другие) также преобразуется к типу unsigned и результат имеет тип unsigned;

• если один из операндов имеет тип int, то другой (другие) также преобразуется ктипу int и результат имеет тип int;

• если один из операндов имеет тип char, то другой (другие) также преобразуется к типу char и результат имеет тип char;

• во время операции присваивания значение правой части преобразуется к типу левой части, который и становится типом результата;

• в процессе преобразования int в char лишние старшие 8 бит просто отбрасываются. Кроме того, существует возможность точно указывать требуемый тип данных, к которому необходимо привести некоторую величину (в скобках перед этой величиной). Скобки и имя типа вместе образуют операцию, называемую приведением типов.

Например: z=(int)x+(int)y;

 



Дата добавления: 2020-02-05; просмотров: 495;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.