java 位运算符赋值_java-运算符(算术、赋值 =、关系、逻辑、三元、位运算符)...
基本運算符與位運算符
算術運算符:兩個操作數進行計算
+ 加
- 減
* 乘
/ 除(取整)
% 取余
例子:
class ArrayTest{
public static void main(String[] args){
int num1 = 12;
int num2 = 5;
int num3 = num1 / num2;
double num4 = num1 / num2 + 0.0;
double num5 = (num1 + 0.0) / (num2 + 0.0);
double num6 = num1 / (num2 + 0.0);
System.out.println("num3="+num3);//2
System.out.println("num4="+num4);//2.0
System.out.println("num5="+num5);//2.4
System.out.println("num6="+num6);//2.4
//%取余運算
int m1 = 12;
int n1 = 5;
System.out.println("m1%n1="+m1%n1);//2
int m2 = -12;
int n2 = 5;
System.out.println("m2%n2="+m2%n2);//-2
int m3 = 12;
int n3 = -5;
System.out.println("m3%n3="+m3%n3);//2
int m4 = -12;
int n4 = -5;
System.out.println("m4%n4="+m4%n4);//-2
}
}
編譯運行:
自增與自減
++ 自增
-- 自減
例子:
class ArrayTest{
public static void main(String[] args){
//前++
int a1 = 10;
int b1 = ++a1;//a1自加1后賦值給b1
System.out.println("a1="+a1+" "+"b1="+b1);
//后++
int a2 = 10;
int b2 = a2++;//a2賦值給b2后再自加1
System.out.println("a2="+a2+" "+"b2="+b2);
//前--
int a3 = 10;
int b3 = --a3;//a3自減1后賦值給b3
System.out.println("a3="+a3+" "+"b3="+b3);
//后--
int a4 = 10;
int b4 = a4--;//a4賦值給b4后再自減1
System.out.println("a4="+a4+" "+"b4="+b4);
}
}
編譯運行:
a++比++a在運行速度上快一點,a--比--a在行速度上快一點。
賦值運算符:
=
擴展的賦值運算符:+= *= -= /= ?%=
例子:
class ArrayTest1{
public static void main(String[] args){
//=
int i1 = 10;
int j1 = 10;
//連續賦值
int i2,j2;
i2 = j2 = 10;
int i3 = 10,j3 = 10;
//*****************
int num1 = 10;
num1 +=2;//num1 = num1 + 2;
System.out.println(num1);
int num2 = 12;
num2 %= 5;//num2 = num2 % 5;
System.out.println(num2);
short s1 = 10;
//s1 = s1 + 2;編譯失敗 左邊short 右邊至少得用int接收
s1 += 2;//不會改變變量本身的數值類型
System.out.println(s1);
//開發中,如果希望變量實現+2的操作,有幾種方法?(int num = 10)
//1.num = num + 2
//2.num +=2(推薦)
}
}
編譯運行:
關系運算符(會形成布爾表達式)--比較運算符
>
<
>=
<=
==? a=b賦值? a==b表判斷
!=
邏輯運算符
短路邏輯運算符:
當使用與邏輯運算符(短路與)時,在兩個操作數都為true時,結果才為true,但是當得到第一個操作為false時,其結果就必定是false,這時候就不會再判斷第二個操作了。
當使用與邏輯運算符(短路或)時,在兩個操作數只要有一個為true時,結果就為true,但是當得到第一個操作為true時,其結果就必定是true,這時候就不會再判斷第二個操作了。
&& 短路與 ,與(并且), 都為真才為真
|| 短路或,或(或者),只要有一個為真就為真
! 邏輯非(取反),? 真變假,假變真
三元運算符(可以嵌套使用)
? : 布爾表達式?結果1:結果2? ??布爾表達式為真(true),獲得結果1,否則為結果2
凡是有三元運算符的地方,都可以改寫成if-else
位運算符:
&(非短路) 邏輯與,a&b按二進制求與
|(非短路) 邏輯或,a|b按二進制求或
^ 邏輯異或,a^b異或 相同時為0,不同時為1? ? 任何一個數與0異或,還是原來的那個數
~ 按位置求反? ?按二進制求反 1變0,0變1
a=27? ?16+8+2+1? ? 00011011
~a=-27 ? 11100101? ? ?符號位甩出去, 0011011? ?-27
移位運算符
a=26
a=a>>1右移運算符
整體往右移1位? 00011010??右移后? ? ?0(符號位還是原來的)0001101
a=13
結論:右移一位值為原來的一半,所以左移<
a=20
a>>>1? ? a=10
a>>1 a=10
a=-20
a>>>1? ? a=2147483638(符號位丟了,0補了上去)
a>>1 a=-10
運算符的優先級(在表中最上邊的優先級最高,從上往下依次遞減)
后綴
() [] . (點操作符)
左到右
一元
expr++ expr--
從左到右
一元
++expr --expr + - ~ !
從右到左
乘性
* /%
左到右
加性
+ -
左到右
移位
>> >>> ?<<
左到右
關系
> >= < <=
左到右
相等
==? !=
左到右
按位與
&
左到右
按位異或
^
左到右
按位或
|
左到右
邏輯與
&&
左到右
邏輯或
| |
左到右
條件
?:
從右到左
賦值
= + = - = * = / =%= >> = << =&= ^ = | =
從右到左
逗號
,
左到右
總結
以上是生活随笔為你收集整理的java 位运算符赋值_java-运算符(算术、赋值 =、关系、逻辑、三元、位运算符)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有房产证怎么进行继承
- 下一篇: mysql 常用小工具包_mssql+m