复合运算符:
+=:把右边的数值与变量的值相加后赋值给变量。例如:int a=10; a+=10;此时a的值为20,和 a=a+10;的意思是一样的。
-=:把右边的数值与变量的值相减后赋值给变量。例如:int a=10; a-=10;此时a的值为0,和 a=a-10;的意思是一样的。
*=:把右边的数值与变量的值相乘后赋值给变量。例如:int a=10; a*=10;此时a的值为100,和int a=a*10;的意思是一样的。
/=:把右边的数值与变量的值相减后赋值给变量。例如:int a=10; a/=10;此时a的值为1,和a=a/10;的意思是一样的。
%=:把右边的数值与变量的值相减后赋值给变量。例如:int a=10; a%=10;此时a的值为0,和 a=a%10;的意思是一样的。
这种写法可读性不是很好,所以一般用得少,只是一种简写的方式。
关系运算符:
>:用于比较一个值是否为大于另一个值的关系,是则返回结果为真(true),不是则返回结果为假(false)。例如:
<:用于比较一个值是否为小于另一个值的关系,是则返回结果为真(true),不是则返回结果为假(false)。例如:
>=:用于比较一个值是否为大于或等于另一个值的关系,是则返回结果为真(true),不是则返回结果为假(false)。例如:
<=:用于比较一个值是否为小于或等于另一个值的关系,是则返回结果为真(true),不是则返回结果为假(false)。例如:
==:用于比较一个值是否为等于另一个值的关系,是则返回结果为真(true),不是则返回结果为假(false)。例如:
!=:用于比较一个值是否为不等于另一个值的关系,是则返回结果为真(true),不是则返回结果为假(false)。例如:
关系运算符主要用于各种变量值的值与值之间的关系比较,就像生活中经常会比较薪资是否大于或小于八千,身高是否大于等于一米七,这个人是否等于有车有房之类的,也是关系比较的运用。例如:
逻辑运算符:
&&:与,是同时的意思:比较两方的值是否都为true,只要有一方的值为false结果就为false。例如:
A B 结果
true && false false
false && true false
true && rue true
false && false false
||: 或,是或者的意思:比较两方的值是否有一方为true,只要有一方的值为true结果就为true。例如:
A B 结果
true || false true
false || true true
True || true true
false || false false
!: 非,是取反的意思:只要是值为true的结果就为false,值为false的结果就为true。就是反过来的意思。例如:
A !A结果
true ! false
false ! true
用&&运算符时前面的值为true,则后面的还继续运行看看是否true,如果前面为false则后面不在再运行,因为条件已经不成立了。
用||运算符时前面的值为true,后面的就不再运行,因为条件已经成立了;如果前面为false,则后面继续运行看看是否为true或false。
位运算符:
计算机最小的单位是位,位运算符是针对位进行运算的。
&:与,两方都为1才为1,一方为0则为0;例如:
0000 0000 0000 0000 0000 0000 0000 0111
0000 0000 0000 0000 0000 0000 0001 0111
结果:
0000 0000 0000 0000 0000 0000 0000 0111
|:或,一方为1则为1,两方都为0才为0;例如:
0000 0000 0000 0000 0000 0000 0001 0101
0000 0000 0000 0000 0000 0000 1001 0111
结果:
0000 0000 0000 0000 0000 0000 1001 0111
~:非,取反,0取反为1 , 1取反为0;例如
0000 0000 0000 0000 0000 0000 1001 0111
结果
1111 1111 1111 1111 1111 1111 0110 1000
^:异或,类似于不等于,两方都为1就为0,两方为0还是为0,
两方都不为1都不为0才为1;例如:
0000 0000 0000 0000 0000 0000 0001 0101
0000 0000 0000 0000 0000 0000 1001 0111
结果:
0000 0000 0000 0000 0000 0000 1000 0010
>>:右移,往右移动两位,负数高位补1,正数高位补0;例如:
正数:6>>2
0000 0000 0000 0000 0000 0000 0000 0110
结果:
0000 0000 0000 0000 0000 0000 0000 0001
负数:-6>>2
1111 1111 1111 1111 1111 1111 1111 1010
结果:
1111 1111 1111 1111 1111 1111 1111 1110
<<:左移,往左移动两位,正数负数都是末位补0;例如:
正数:6<<2
0000 0000 0000 0000 0000 0000 0000 0110
结果:
0000 0000 0000 0000 0000 0000 0001 1000
负数:-6<<2
1111 1111 1111 1111 1111 1111 1111 1010
结果:
1111 1111 1111 1111 1111 1111 1110 1000
>>>:无符号右移,向右移动两位,正数负数都是高位补0,例如:
正数:6>>>2
0000 0000 0000 0000 0000 0000 0000 0110
结果:
0000 0000 0000 0000 0000 0000 0000 0001
负数:-6>>>2
1111 1111 1111 1111 1111 1111 1111 1010
结果:
0011 1111 1111 1111 1111 1111 1111 1110
总结:
1.复合运算符在开发上能起到简写代码的作用,并且不会发生数据类型转换的一些错误,但是由于这种写法可读性比较差,所以一般团队开发中不常用。
2.关系运算符是经常用到的运算符也是比较重要的运算符,因为程序中需要进行很多比较、判断条件来确认程序是否继续执行或执行哪一块。就像生活中你对手机屏幕尺寸的条件要求是不能大于5英寸,屏幕分辨率不能小于1080*920等,这些都是类似于关系运算符在代码中的作用。
3.逻辑运算符也是经常用到的运算符,是需要掌握好的一个知识点,因为有时候程序中会需要用到多重条件来进行判断,这些个条件成立则继续运行,不成立则跳出或者执行另一片代码。就像平时生活中去买菜一样,你要求这个菜要同时等于新鲜和便宜才会买否则不买或买其他的;买车你会要求小于等于20万或等于预算资金,其中一个条件满足你才会买,否则也是不买或买其他的;这些都是多个条件的判断。
4.位运算符主要是针对位的一个运算,在项目开发中基本不怎么用得上, 除非在很小的存储器、微机、单片机里面进行的开发,不过稍微学习一下倒是能够增加对二进制的一些了解。
本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1955676,如需转载请自行联系原作者