Java中的位運算符是什麼? 及其分類(附示例)

已發表: 2021-05-20

Java 是印度最主要的編程語言之一,佔據了大約 20% 的市場份額 Java 中的位運算符是一種符號/符號,它對獨立位執行指定的操作,一次取一個。 它用於處理二進制數的各個位,並且可以與各種整數類型一起使用——char、int、long、short、byte。

Java中位運算符大致可分為 7 種類型:

Java中的位運算符象徵描述
按位與| 當且僅當它在兩個操作數中都存在時,在結果中保留一點。
按位或& 如果它存在於兩個操作數中的任何一個中,則保留一點。
按位異或^ 如果它只出現在一個操作數中而不是兩個操作數中,則保留一點。
按位補碼~ 也稱為 1 的補碼。 只需反轉操作數的位。
按位左移<< 左操作數中的位向左移動右操作數中指定的位數。
簽名右移>> 左操作數中的位向右移動右操作數中指定的位數。
無符號右移>>> 就像 SIGNED RIGHT SHIFT 加上移位的位一樣用零填充。

現在讓我們詳細探討Java 中的每個位運算符:

目錄

1. 或 (A | B)

真值表

一種輸出
0 0 0
0 1 1
1 0 1
1 1 1

例子

A = 1011 1110

B = 0011 0101

一個 | 乙 = 1011 1111

句法

類主{

公共靜態無效主要(字符串[]參數){

int 操作數 1 = 190,操作數 2 = 53,輸出;

// 190 和 53 之間的按位或

輸出 = 操作數 1 | 操作數2;

System.out.println(輸出); // 程序打印 191

}

}

2. 與(A 和 B)

真值表

一種輸出
0 0 0
0 1 0
1 0 0
1 1 1

例子

A = 1011 1110

B = 0011 0101

A & B = 0011 0100

句法

類主{

公共靜態無效主要(字符串[]參數){

int 操作數 1 = 190,操作數 2 = 53,輸出;

// 190 和 53 之間的按位或

輸出 = 操作數 1 | 操作數2;

System.out.println(輸出); // 程序打印 52

}

}

  1. 包含 OR / XOR (A ^ B)

真值表

一種輸出
0 0 0
0 1 1
1 0 1
1 1 0

例子

A = 1011 1110

B = 0011 0101

A ^ B = 1000 0011

句法

類主{

公共靜態無效主要(字符串[]參數){

int 操作數 1 = 190,操作數 2 = 53,輸出;

// 190 和 53 之間的按位或

輸出 = 操作數 1 | 操作數2;

System.out.println(輸出); // 程序打印 131

}

}

3. 補充(A~B)

在十進制術語中,數字 A 的按位補碼是 – (A+1)。 但是,在二進制域中,我們需要先計算它的 1 的補碼,然後將其轉換成它的 2 的補碼,才能得到想要的輸出。

1 的補碼——只需反轉位。 例如:

A = 1011 1110 (190)

A 的 1 補碼 = 0100 0001

A 的 2 補碼 = A 的 1 補碼 + 1 = 0100 0010

句法

類主{

公共靜態無效主要(字符串[]參數){

int 操作數4 = 190,輸出;

// 190 的按位補碼

輸出=〜操作數4;

System.out.println(輸出); // 打印 -191

}

}

  1. 左移 (A << 1)

假設 A = 1011 1110

A << 1 = ?

Java中的這個按位運算符使所有位左移1,即輸出為0111 1100。最左邊的位(最高有效位或MSB)被丟棄,最右邊的空位加一個0(最低有效位或 LSB)。 這是為右邊的每個空位完成的。

句法

類主{

公共靜態無效主要(字符串[]參數){

整數操作數 = 3; // 二進制 - 11

// 1 位左移操作

int輸出=操作數<<1;

System.out.println(輸出); // 打印 2

}

}

4. 簽名右移 (A >>2)

Java 中的這個按位運算符將位模式向右移動指定的位數。 LSB 被丟棄,MSB 用符號位填充。 0代表正號,1代表負號。

句法

類主{

公共靜態無效主要(字符串[]參數){

整數操作數 1 = 2;

整數操作數2 = -2;

// 2 位有符號右移

System.out.println(operand1 >> 2); // 打印 1

System.out.println(operand2 >> 2); // 打印 -1

}

}

5. 無符號右移(A >>>2)

這裡的操作與 SIGNED RIGHT SHIFT 完全相同,只是最左邊的空位被替換為 0 而不是符號位。

句法

類主{

公共靜態無效主要(字符串[]參數){

整數操作數 = 240; // 二進制數 – 1111 0000

// 2 位無符號右移

System.out.println(操作數 >>> 2); // 打印 60

}

}

從世界頂級大學在線學習軟件工程課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

熱衷於掌握 Java 並以此為職業? 查看 upGrad 的軟件和技術軌道。 報名參加為期 13 個月的全棧開發執行 PG 計劃,親身體驗真實世界的項目。 隸屬於著名的 IIIT 班加羅爾,您有機會學習 16 種編程語言和工具,並保證 3 次工作面試。

什麼是位運算符?

位運算符對操作數的每一位進行運算,並以 1 和 0 的形式返回結果。 大多數位運算符用於製作各種掩碼,可用於製作位域、更改數據類型的大小和對齊數據類型。 位運算符用於對二進制數執行逐位運算。 它用於在位級操作中更有效。 我們不能對非整數數據類型的變量使用按位運算符。

Java中的位運算符有哪些類型?

在 Java 語言中,除了算術運算符外,還使用了位運算符。 雖然只有幾個位運算符,但它們非常有用。 在 Java 中有六個運算符。 它們是:按位與、按位或、按位異或、按位左移、按位右移和補碼。 這些運算符可應用於整數類型 byte、short、int、long 和 char。

java編程語言的特點是什麼?

Java 是一種通用的面向對象的編程語言。 Java 應用程序通常被編譯成字節碼,然後在 Java 虛擬機上執行。 Java 旨在運行在各種平台上。 它還被設計用於分佈式計算環境。 用 Java 編程語言編寫的程序稱為 Java 應用程序或 Java 應用程序環境。 Java 編程語言是一種強大而靈活的語言。 Java 應用程序通常比一般的 Web 應用程序更大、更複雜。 Java 編程語言是一種通用語言。 它可用於為任何目的創建應用程序。 多線程、網絡、安全性和持久性等特性使 Java 適用於各種用途。