日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【JAVA基础篇】运算符

發布時間:2025/3/8 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【JAVA基础篇】运算符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、表達式

表達式由運算符和操作數組成

例如: 5

num1

num1+num2

sum=num1+num2

二、運算符分類

算數運算符、賦值運算符、關系運算符、邏輯運算符、條件運算符、位運算符

三、算數運算符

?

四、賦值運算符

格式:變量=表達式

例如:int n=3;//將3賦值給變量n

注意:賦值運算符是從右往左運算!賦值運算符的左邊不能是常量!

復合賦值運算符

?

五、關系運算符

比較運算符用于判斷兩個數據的大小,如大于
比較的結果是一個布爾值

六、邏輯運算符

短路運算符:&&和||,左邊的表達式值可以確定結果時,就不再繼續運算右邊的表達式的值

七、條件運算符

Java中的條件運算符是三目運算符

語法:布爾表達式?表達式1:表達式2

八、位運算符

操作二進制位,&,|,<<、>>、>>>

九、運算符優先級

優先級

運算符

結合性

1

()?[]?.

從左到右

2

!?+(正) ?-(負)?~?++?--

從右向左

3

*?/?%

從左向右

4

+(加)?-(減)

從左向右

5

<<?>>?>>>

從左向右

6

<?<=?>?>=?instanceof

從左向右

7

==?? !=

從左向右

8

&(按位與)

從左向右

9

^

從左向右

10

|

從左向右

11

&&

從左向右

12

||

從左向右

13

?:

從右向左

14

=?+=?-=?*=?/=?%=?&=?|=?^= ?~= ?<<=?>>=?? >>>=

從右向左

ps:&、|、^這三個運算符在操作數分別是數值類型和布爾類型的時候,表示的含義分別是按位與、按位或、按位異或和邏輯與、邏輯或、邏輯異或。上面的表格我其實沒有標識出來是按位還是邏輯,如果有大佬知道優先級的話麻煩在下方評論!

十、位運算符的使用

共同特性:先將操作數轉換成二進制,然后按照二進制位做運算,移位運算符如果超出二進制位的部分丟棄

10.1、<<左移運算符

含義:使指定值的所有位都左移規定的次數

語法格式:value << num

規則:

  • 低位補0
  • 如果移動的位數超過了該類型的最大位數,那么編譯器會對移動的位數取模。如對int型移動33位,實際上只移動了33-32=1位
  • 當左移的運算數是byte 和short類型時,將自動把這些類型擴大為 int 型。
  • 10.2、>>右移運算符

    含義:使指定值的所有位都右移規定的次數

    語法格式:value >> num

    規則:

  • 高位補符號位,即正數高位補0,負數高位補1
  • 如果移動的位數超過了該類型的最大位數,那么編譯器會對移動的位數取模。如對int型移動33位,實際上只移動了33-32=1位
  • 當左移的運算數是byte 和short類型時,將自動把這些類型擴大為 int 型。
  • 10.3、>>>無符號右移運算符

    語法格式:value >>> num

    規則:

  • 忽視符號位,高位補0
  • 當無符號右移的運算數是byte 和short類型時,將自動把這些類型擴大為 int 型。
  • 10.4、示例代碼

    package org.cc.javase; /*** 位運算符示例* @author cc**/ public class BitOperator {private static int a = 60;//0011 1100private static int b = 13;//0000 1101private static int c = -116;public static void main(String[] args) {//Integer.toBinaryString方法:若高位有連續的0,則高位不顯示 // yu(a,b);//兩個正數做與運算 // yu(a,c);//正負數做與運算,結果一定是一個正數 // huo(a,b);//兩個正數做或運算 // yh(a,b);//兩個正數做異或運算 // qf(a);//正數做取反運算 // yy(b,2);//正數右移兩位 // yy(c,2);//負數右移兩位 // zy(b,2);//正數左移兩位 // zy(c,2);//負數左移兩位 // yy1(c,2);//負數無符號右移兩位}/*** & 與運算* @param a* @param b*/private static void yu(int a,int b){System.out.println("操作數a:"+complement0(a));System.out.println("操作數b:"+complement0(b));System.out.println("操作結果"+complement0(a&b));System.out.println(a&b);}/*** | 或運算* @param a* @param b*/private static void huo(int a,int b){System.out.println("操作數a:"+complement0(a));System.out.println("操作數b:"+complement0(b));System.out.println("操作結果:"+complement0(a|b));System.out.println(a|b);}/*** ^ 異或運算* @param a* @param b*/private static void yh(int a,int b){System.out.println("操作數a:"+complement0(a));System.out.println("操作數b:"+complement0(b));System.out.println("操作結果:"+complement0(a^b));System.out.println(a^b);}/*** ~ 取反* @param a*/private static void qf(int a){System.out.println("操作數a:"+complement0(a));System.out.println("操作結果:"+complement0(~a));System.out.println(~a);}/*** >> 帶符號右移* @param a*/private static void yy(int a,int bitNum){System.out.println("操作數a:"+complement0(a));System.out.println("操作結果:"+complement0(a>>bitNum));System.out.println(a>>bitNum);}/*** << 帶符號左移* @param a*/private static void zy(int a,int bitNum){System.out.println("操作數a:"+complement0(a));System.out.println("操作結果:"+complement0(a<<bitNum));System.out.println(a<<bitNum);}/*** >>> 不帶符號右移* @param a*/private static void yy1(int a,int bitNum){System.out.println("操作數a:"+complement0(a));System.out.println("操作結果:"+complement0(a>>>bitNum));System.out.println(a>>>bitNum);}/** 將高位的0也顯示出來 */private static String complement0(int number){String binaryStr = Integer.toBinaryString(number);StringBuffer sb = new StringBuffer();if(binaryStr.length()<32){int count = 32-binaryStr.length();for(int i=0;i<count;i++) sb.append("0");}return sb.append(binaryStr).toString();}}

    ?

    總結

    以上是生活随笔為你收集整理的【JAVA基础篇】运算符的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。