Битовые операции
Битовое «и» Битовое «или» Битовое исключающее «или» Сдвиг влево Сдвиг вправо Инверсия битов (унарная операция) | & | ~ « » \ ~ |
Программа 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;
Дата добавления: 2015-10-13; просмотров: 668;