Java 基礎語法 Part4
在有關我筆記分享的博客中,我都會將MD筆記檔案另外發布,方便朋友們下載學習,(粉絲可下載)
本期筆記檔案下載地址:https://download.csdn.net/download/lbwnbnbnbn/15225075
Ayo大家好我是Tomatooo,這是我的Java學習筆記第4期,話不多說直插主題——
運算
整數運算
Java整數運算遵循四則運算原則,可以使用括號等
整數在運算時只會保留整數部分,并不像設想的那樣會四舍五入
求余運算使用%
示例:
int a = 66666%123 //這里是求66666/123的余數
特別注意:整數的除法對于除數為0時運行時將報錯,但編譯不會報錯,
溢位
之前筆記提到過,整數存在范圍限制,如果計算結果超出了范圍,就會造成溢位,而溢位不會出錯,只會得到一個意料之外的結果
自增/自減
Java提供了++運算和--運算,它們可以對一個整數進行加1和減1的操作
注意:++寫在前面和后面計算結果是不同的,++n表示先加1再參考n,n++表示先參考n再加1,
移位運算
在計算機中,整數總是以二進制的形式表示,
例如,
int型別的整數7使用4位元組表示的二進制如下:
00000000 00000000 00000000 00000111
可以對整數進行移位運算,對整數
7左移1位將得到整數14,左移兩位將得到整數28示例:
int n = 7; // 00000000 00000000 00000000 00000111 = 7
int a = n << 1; // 00000000 00000000 00000000 00001110 = 14
int b = n << 2; // 00000000 00000000 00000000 00011100 = 28
int c = n << 28; // 01110000 00000000 00000000 00000000 = 1879048192
int d = n << 29; // 11100000 00000000 00000000 00000000 = -536870912
左移29位時,由于最高位變成
1,因此結果變成了負數,同理,右移符號為>>
還有一種無符號的右移運算,使用>>>,它的特點是不管符號位,右移后高位總是補0,因此,對一個負數進行>>>右移,它會變成正數,原因是最高位的1變成了0
對byte和short型別進行移位時,會首先轉換為int再進行位移,
仔細觀察可發現,左移實際上就是不斷地×2,右移實際上就是不斷地÷2,
位運算
與、或、非和異或的運算
- 與運算:必須兩個數同時為
1,結果才為1 - 或運算:只要任意一個為
1,結果就為1 - 非運算:
0和1互換
示例:
n = ~0; // 1
n = ~1; // 0
- 異或運算:如果兩個數不同,結果為
1,否則為0
示例:
n = 0 ^ 0; // 0
n = 0 ^ 1; // 1
n = 1 ^ 0; // 1
n = 1 ^ 1; // 0
對兩個整數進行位運算,實際上就是按位對齊,然后依次對每一位進行運算,
public class Main {
public static void main(String[] args) {
int i = 167776589; // 00001010 00000000 00010001 01001101
int n = 167776512; // 00001010 00000000 00010001 00000000
System.out.println(i & n); // 167776512
}
}
運算優先級
在Java的計算運算式中,運算優先級從高到低依次是:
()!~++--*/%+-<<>>>>>&|+=-=*=/=
不用全部記住,要確保正確只要加括號就好
看都看到這兒了,不關注一下嘛(~ ̄▽ ̄)~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/259215.html
標籤:java
