Java入门到放弃--第三课--运算符

2020-06-30  本文已影响0人  暖遇

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,&运算的结果才为1,否则就为0。

  1. |(或)

只有参与运算的两位都为0,|运算的结果才为0,否则就为1。

  1. ^(异或)

(1)只有参与运算的两位不同,^运算的结果才为1,否则就为0。

(2)规律:如果操作数A连续异或同一个操作数两次,那么结果还是操作数A。

(3)应用:对数据进行加密。(实例在博客中会单独列出一篇)

  1. ~(取反)

就是二进制位按位取反,二进制只有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. <<(左移)

(1)二进制数全部向左移动一位,把前面多出的一位删掉,后面少了的一位用0去补。

(2)规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移的位数。

  1. (右移)

(1)一个操作数在进行右移运算的时候,如果该操作数是一个正数,那么左边空缺位使用0补;如果该操作数是一个负数,那么使用1来补充。

(2)规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数。

  1. (无符号右移)

无符号右移与右移的区别:

(1)进行右移运算的时候,如果操作数是一个正数,那么左边的空缺位使用0补;如果操作数是一个负数,那么左边的空缺位使用1补。

(2)使用无符号右移的时候,不管是正数还是负数,都统一使用0补。

1.7:三元运算符
1.格式:布尔表达式?表达式1:表达式2;

2.结果:如果布尔表达式的结果为true,运行后的结果为表达式1;如果布尔表达式的结果为false,运行后的结果为表达式2。

3.注意细节:使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。

4.三元运算符的优点:结构比较简洁。
5.三元运算符的缺点:符合条件必须要返回一个结果,不能执行语句。

1.8:运算符的优先级表


image.png
上一篇下一篇

猜你喜欢

热点阅读