1:运算符
1.1:算数运算符
image.png
1.2:赋值运算符
image.png
1.3:比较运算符
image.png
1.4:逻辑运算符
image.png
^ (异或):可以从“异”字入手去理解
规律:只要两边的布尔表达式结果不一致,结果就为true;如果左右两边的布尔表达式一致,结果就为false。
1.5:位运算符
image.png
- &(与)
只有参与运算的两位都为1,&运算的结果才为1,否则就为0。
- |(或)
只有参与运算的两位都为0,|运算的结果才为0,否则就为1。
- ^(异或)
(1)只有参与运算的两位不同,^运算的结果才为1,否则就为0。
(2)规律:如果操作数A连续异或同一个操作数两次,那么结果还是操作数A。
(3)应用:对数据进行加密。(实例在博客中会单独列出一篇)
- ~(取反)
就是二进制位按位取反,二进制只有1和0,取反就是1取反是0,0取反是1。
注意:
(1)如果符号左右连接的是整数,则是位运算符;如果符号左右连接的是布尔表达式,那么就是逻辑运算符。
(2)计算机中一个数的取反并不是像数值运算中的正数取反就是负数,而是按计算机中存储的二进制位取反。
(3)要注意负数在计算机中的存储原理,如下图所示:
image.png
结论:
(1)当参与取反的数值是正数时,把对应的值加上负号,再-1。
(2)当参与取反的数值是负数时,把对应的值加上负号,再-1。
(3)负数表现形式就是对应的正数取反再+1,负数的最高位肯定是1。
1.6:移位运算符
image.png
image.png
- <<(左移)
(1)二进制数全部向左移动一位,把前面多出的一位删掉,后面少了的一位用0去补。
(2)规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移的位数。
-
(右移)
(1)一个操作数在进行右移运算的时候,如果该操作数是一个正数,那么左边空缺位使用0补;如果该操作数是一个负数,那么使用1来补充。
(2)规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数。
-
(无符号右移)
无符号右移与右移的区别:
(1)进行右移运算的时候,如果操作数是一个正数,那么左边的空缺位使用0补;如果操作数是一个负数,那么左边的空缺位使用1补。
(2)使用无符号右移的时候,不管是正数还是负数,都统一使用0补。
1.7:三元运算符
1.格式:布尔表达式?表达式1:表达式2;
2.结果:如果布尔表达式的结果为true,运行后的结果为表达式1;如果布尔表达式的结果为false,运行后的结果为表达式2。
3.注意细节:使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。
4.三元运算符的优点:结构比较简洁。
5.三元运算符的缺点:符合条件必须要返回一个结果,不能执行语句。
1.8:运算符的优先级表
image.png
网友评论