算术运算符
符号 运算 = 赋值运算 + 加法(连接字符串) - 减法 % 取余 * 乘法 / 整除
比较运算符
符号 运算 > 大于 < 小于 == 等于 <= 小于等于 >= 大于等于 != 不等
逻辑运算符
符号 运算 && or & 逻辑与 || or | 逻辑或 ! 逻辑非
&&和&的区别:&&如果第一个条件为假将不会执行第二个条件 ||和|的区别:||如果第一个条件为真则不会执行第二个条件 从效率上来说&&,||的效率更高,一般情况下用的也是&&和||。
赋值运算符
符号 运算 += 加等(a+=b实际上就是a=a+b) -= 减等 /= 除等 *= 乘等 %= 取模等
自加和自减运算符
符号 运算 a++ 实际上为a=a+1 ++a 实际上为a=a+1 a– 实际上为a=a-1 –a 实际上为a=a-1
a++和++a的区别在于优先级不同,++a的优先级别非常高,仅次于括号,a++和的优先级别非常非常低,甚至比赋值符都低。 例如 int a=1,b=1; int c=(a++)+b++; 在执行第二个语句的最后b才加上一,运行结束后a,b为2,而c为3
三目运算符
条件表达式?值1:值2 条件表达式结果为真则返回结果值1,反正返回结果值2 类似于: if(条件表达式) return 值1; else return 值2;
位运算符
符号 运算 & 与运算 | 或运算 ^ 异或运算 ~ 按位取反 << 左移运算 >> 有符号右移运算 >>> 无符号右移运算
& 例如1&3结果为2,1为0000 0001,3为0000 0011,每位相对都为1为1,其余情况均为0,所以结果为0000 0010. | 例如1 |3结果为3,1为0000 0001,3为0000 0011,每位相对都为0为0,其余情况均为1,所以结果为0000 0011. ^例如1 ^3结果为2,1为0000 0001,3为0000 0011,每位相对如果不相同为1,如果相同则为0,所以结果为0000 0010. ~就是1为0,0为1,5的二进制位是0000 0101,取反后为1111 1010(此为补码,转换为反码为1111 1001,转换为源码为1000 0110),值为-6 <<例如1 <<2结果为4,1为0000 0001,每位向右边移动2位,没有的位数则为0,结果为0000 0100. >>例如3 >>1结果为1,3为0000 0011,每位向左边移动1位,结果为0000 0001.
可以使用 a^=b; b^=a; a^=b; 来使用两个数的交换,要注意的两个数不能相等,否则答案将为0;