Java中的位運算符是什麼? 及其分類(附示例)
已發表: 2021-05-20Java 是印度最主要的編程語言之一,佔據了大約 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
}
}
- 包含 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
}
}
- 左移 (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 適用於各種用途。