运算符顺序和位运算符
位运算符:
&(AND):表示二元数全为真时结果为真。
>(OR):或,表示二元数有一个为真时结果为真
^(EOR):异或。只有二元数全为1时,结果为0.即相同为0
~:取反。一元操作符,为1时结果为0,为0时结果为1
>>:位右移。即操作数以二进制形式向右边移动的位数。
<<:位左移. 即操作数以二进制形式向工边移动的位数。
它们的格式也可变为:
LValue op= RValue;
如: a &=b 等价于 a=a & b;
<<和>>操作对于无符号整数相当于 原值乘以2的n次方或原值除于2的n次方,n为移动的位数.
如 int a=30,相当于二进制0001 1110,右移4位(二进制为0000 0001),则相当于30 / (2的4次方),结果为1. 左移4位,则变成(1110 0000),结果为480.
代码为:
#include <iostream> using namespace std; void main() { int a=30; cout<<(a>>4)<<endl; a=30; cout<<(a<<4)<<endl; }
//计算结果为 1
480
有符号整数的最右数为1,以另种方法计算。
逻辑运算符
&&(逻辑与),二元运算符,只有二个操作条件都为真时,结果才为真。
||(逻辑或),二元运算符,只有二个操作条件有一个为真时就为真。
!(逻辑非), 一元运算符,将条件表达式取反。
条件表达式结果是零时为False,非零时为True.