一、算数操作符
+ - * / %
1.除了%操作符之外,其他几个操作符可以作用于整数和浮点数。
2.对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3.%操作符的两个操作数必须为整数。返回的是整数之后的余数。
二、移位操作符
<< 左移操作符
>> 右移操作符
左移操作符
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a = a<< 2将a的二进制位左移2位,右补0,
左移1位后a = a *2;
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
右移操作符
移位规则:
1.逻辑移位
左边用0填充,右边丢弃
2.算数移位
左边用原该值的符号位填充,右边丢弃
注意:对于移位操作运算符,不要移动负数位,这个是标准未定义的。
三、位操作符
& //按位与
| //按位或
^ //按位异或
注:他们的操作数必须是整数
按位与运算符(&)
参加运算的两个数据,按二进制位进行“与”运算。
运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
即:两位同时为“1”,结果才为“1”,否则为0
例如:3&5 即 0000 0011& 0000 0101 = 00000001 因此,3&5的值得1。
按位或运算符(|)
参加运算的两个对象,按二进制位进行“或”运算。
运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;
即 :参加运算的两个对象只要有一个为1,其值为1。
例如:3|5 即 00000011 | 0000 0101 = 00000111 因此,3|5的值得7。
异或运算符(^)
参加运算的两个数据,按二进制位进行“异或”运算。
运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;
即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
四、赋值操作符
=
复合赋值符:+=、-=、/=、*=、%=、>>=、<<=、&=、|=
五、单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的长度(以字节为单位)
~ 对一个数的二进制位按位取反
-- 前置 后置--
++ 前置 后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
六、关系操作符
> 、 >=、<、<=、!=
(判断不相等)、==(判断相等)
注意:在写代码时千万别把==写成=,导致程序出现问题。
七、逻辑操作符
&& 逻辑与
|| 逻辑或
注意:一定要注意区分逻辑与、逻辑或和按位与、按位或的区别
例:1&2-->0 1&&2-->1
1|2--->3 1||2--->1
八、条件操作符
表达式1?表达式2:表达式3
九、逗号表达式
表达式1,表达式2,表达式3,表达式n
注意:逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。