【JAVA基础篇】运算符
一、表達(dá)式
表達(dá)式由運(yùn)算符和操作數(shù)組成
例如: 5
num1
num1+num2
sum=num1+num2
二、運(yùn)算符分類
算數(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、位運(yùn)算符
三、算數(shù)運(yùn)算符
?
四、賦值運(yùn)算符
格式:變量=表達(dá)式
例如:int n=3;//將3賦值給變量n
注意:賦值運(yùn)算符是從右往左運(yùn)算!賦值運(yùn)算符的左邊不能是常量!
復(fù)合賦值運(yùn)算符
?
五、關(guān)系運(yùn)算符
比較運(yùn)算符用于判斷兩個(gè)數(shù)據(jù)的大小,如大于
比較的結(jié)果是一個(gè)布爾值
六、邏輯運(yùn)算符
短路運(yùn)算符:&&和||,左邊的表達(dá)式值可以確定結(jié)果時(shí),就不再繼續(xù)運(yùn)算右邊的表達(dá)式的值
七、條件運(yùn)算符
Java中的條件運(yùn)算符是三目運(yùn)算符
語法:布爾表達(dá)式?表達(dá)式1:表達(dá)式2
八、位運(yùn)算符
操作二進(jìn)制位,&,|,<<、>>、>>>
九、運(yùn)算符優(yōu)先級(jí)
| 1 | ()?[]?. | 從左到右 |
| 2 | !?+(正) ?-(負(fù))?~?++?-- | 從右向左 |
| 3 | *?/?% | 從左向右 |
| 4 | +(加)?-(減) | 從左向右 |
| 5 | <<?>>?>>> | 從左向右 |
| 6 | <?<=?>?>=?instanceof | 從左向右 |
| 7 | ==?? != | 從左向右 |
| 8 | &(按位與) | 從左向右 |
| 9 | ^ | 從左向右 |
| 10 | | | 從左向右 |
| 11 | && | 從左向右 |
| 12 | || | 從左向右 |
| 13 | ?: | 從右向左 |
| 14 | =?+=?-=?*=?/=?%=?&=?|=?^= ?~= ?<<=?>>=?? >>>= | 從右向左 |
ps:&、|、^這三個(gè)運(yùn)算符在操作數(shù)分別是數(shù)值類型和布爾類型的時(shí)候,表示的含義分別是按位與、按位或、按位異或和邏輯與、邏輯或、邏輯異或。上面的表格我其實(shí)沒有標(biāo)識(shí)出來是按位還是邏輯,如果有大佬知道優(yōu)先級(jí)的話麻煩在下方評(píng)論!
十、位運(yùn)算符的使用
共同特性:先將操作數(shù)轉(zhuǎn)換成二進(jìn)制,然后按照二進(jìn)制位做運(yùn)算,移位運(yùn)算符如果超出二進(jìn)制位的部分丟棄
10.1、<<左移運(yùn)算符
含義:使指定值的所有位都左移規(guī)定的次數(shù)
語法格式:value << num
規(guī)則:
10.2、>>右移運(yùn)算符
含義:使指定值的所有位都右移規(guī)定的次數(shù)
語法格式:value >> num
規(guī)則:
10.3、>>>無符號(hào)右移運(yùn)算符
語法格式:value >>> num
規(guī)則:
10.4、示例代碼
package org.cc.javase; /*** 位運(yùn)算符示例* @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方法:若高位有連續(xù)的0,則高位不顯示 // yu(a,b);//兩個(gè)正數(shù)做與運(yùn)算 // yu(a,c);//正負(fù)數(shù)做與運(yùn)算,結(jié)果一定是一個(gè)正數(shù) // huo(a,b);//兩個(gè)正數(shù)做或運(yùn)算 // yh(a,b);//兩個(gè)正數(shù)做異或運(yùn)算 // qf(a);//正數(shù)做取反運(yùn)算 // yy(b,2);//正數(shù)右移兩位 // yy(c,2);//負(fù)數(shù)右移兩位 // zy(b,2);//正數(shù)左移兩位 // zy(c,2);//負(fù)數(shù)左移兩位 // yy1(c,2);//負(fù)數(shù)無符號(hào)右移兩位}/*** & 與運(yùn)算* @param a* @param b*/private static void yu(int a,int b){System.out.println("操作數(shù)a:"+complement0(a));System.out.println("操作數(shù)b:"+complement0(b));System.out.println("操作結(jié)果"+complement0(a&b));System.out.println(a&b);}/*** | 或運(yùn)算* @param a* @param b*/private static void huo(int a,int b){System.out.println("操作數(shù)a:"+complement0(a));System.out.println("操作數(shù)b:"+complement0(b));System.out.println("操作結(jié)果:"+complement0(a|b));System.out.println(a|b);}/*** ^ 異或運(yùn)算* @param a* @param b*/private static void yh(int a,int b){System.out.println("操作數(shù)a:"+complement0(a));System.out.println("操作數(shù)b:"+complement0(b));System.out.println("操作結(jié)果:"+complement0(a^b));System.out.println(a^b);}/*** ~ 取反* @param a*/private static void qf(int a){System.out.println("操作數(shù)a:"+complement0(a));System.out.println("操作結(jié)果:"+complement0(~a));System.out.println(~a);}/*** >> 帶符號(hào)右移* @param a*/private static void yy(int a,int bitNum){System.out.println("操作數(shù)a:"+complement0(a));System.out.println("操作結(jié)果:"+complement0(a>>bitNum));System.out.println(a>>bitNum);}/*** << 帶符號(hào)左移* @param a*/private static void zy(int a,int bitNum){System.out.println("操作數(shù)a:"+complement0(a));System.out.println("操作結(jié)果:"+complement0(a<<bitNum));System.out.println(a<<bitNum);}/*** >>> 不帶符號(hào)右移* @param a*/private static void yy1(int a,int bitNum){System.out.println("操作數(shù)a:"+complement0(a));System.out.println("操作結(jié)果:"+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();}}?
總結(jié)
以上是生活随笔為你收集整理的【JAVA基础篇】运算符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu安装java的rpm_ubu
- 下一篇: 1110: 最近共同祖先(函数专题)