运算符和表达式
- 运算符和表达式的区分:简单理解就是 加分号的是语句;不加分号就是表达式。
运算符
类别 | 运算符 |
---|---|
算术运算符 | + - * / % ++ -- |
关系运算符 | < <= == > >= != |
逻辑运算符 | ! && || |
位运算符 | << >> ~ | ^ & |
赋值运算符 | = += -= *= /= %= <<= >>= &= ^= |= |
条件运算符 | ? : |
逗号运算符 | , |
指针运算符 | * & |
求字节数 | sizeof |
强制类型转换 | (type) |
分量运算符 | . -> |
下标运算符 | [] |
其它 | () |
- 运算符的优先级和结合性见计算的优先级和顺序
- % 左右操作数是整型数。
- 逻辑运算符(&&、||)注意短路特性。
位运算
-
右移( >> )一位 左补0,除以2
-
左移( << )一位 右补0,乘以2
-
按位取反( ~ )
-
按位或( | );有一位为真即为真
-
按位与( & );同时为真才为真
-
异或( ^ );相同为0,不同为1
-
位运算的用法
- 将操作数中第n位置1,其他位不变。把第n位或1就是该位与1的或,所以表达式为: num = mum | 1 << n;
- 将操作数中第n位清0,其他位不变。num = num & ~(1 << n);
- 测试第n位。num & 1 << n;
- 从一个指定宽度的数中取出其中的某几位。