1. 程式人生 > 其它 >Java學習筆記第05期——Java基礎語法Part4

Java學習筆記第05期——Java基礎語法Part4

技術標籤:Java學習筆記java程式語言

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

byteshort型別進行移位時,會首先轉換為int再進行位移。

仔細觀察可發現,左移實際上就是不斷地×2,右移實際上就是不斷地÷2。

位運算

與、或、非和異或的運算

  • 與運算:必須兩個數同時為1,結果才為1
  • 或運算:只要任意一個為1,結果就為1
  • 非運算:01互換

示例:

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的計算表示式中,運算優先順序從高到低依次是:

  • ()
  • ! ~ ++ --
  • * / %
  • + -
  • << >> >>>
  • &
  • |
  • += -= *= /=

不用全部記住,要確保正確只要加括號就好

看都看到這兒了,不關注一下嘛(~ ̄▽ ̄)~