目錄
Java 位元和位移運算子
Java 中的位元操作運算子
1.位元或
結論 – Java 中的位元操作
首頁 Java java教程 Java 中的位元操作

Java 中的位元操作

Aug 30, 2024 pm 03:59 PM
java

通常,程式設計師處理 int、float、double、String 等資料類型的變數或 Array、List、ArrayList 等集合。在某些情況下,程式設計師需要更深入地了解位元組和位元層級的數據,以提取和操作資料。 Java 和 C# 等語言可讓您在位元層級操作數據,這表示您可以存取位元組中的特定位元。在本主題中,我們將學習 Java 中的位元操作。

在進行資料壓縮和資料加密時,通常需要 Java 中的位元操作,程式設計師需要在位元層級提取資料以對原始資料進行編碼、解碼或壓縮。我們將在本文後面看到位元操作的許多其他應用。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

Java 支援 3 位元移位和 4 個位元運算子來執行位元層級的運算。這些運算子可用於整數(int、short、long 和 byte)以執行位元層級的操作。

Java 位元和位移運算子

以下是運算子:

Operator Description
& Bitwise AND
| Bitwise OR
~ Bitwise Complement
<< Left Shift
>> Right Shift
^ Bitwise XOR
>>> Unsigned Right Shift

Java 中的位元操作運算子

讓我們更詳細地了解運算子。

1.位元或

這是一個二元運算符,需要2 個操作數,用符號「|」表示」。位元運算子比較兩個運算元的對應位。如果運算元任意一位為1,則輸出為1;如果沒有,則為0。

範例

15 = 00001111(二進位)

27 = 00011011(二進位)
15 和 27 的位元或運算
00001111
|  00011011
___
00011111 = 31(十進位)

Java 程式

1

2

3

4

5

6

public class BitwiseOR {

public static void main(String[] args) {

int operand1 = 15, operand2 = 27, output = operand1 | operand2;

System.out.println(output);

}

}

登入後複製

輸出:

Java 中的位元操作

2.位元與

這也是一個位元運算符,它需要 2 個運算元,用符號「&」表示。以位元運算子比較兩個運算元的對應位。如果操作數位均為 1,則輸出為 1;否則,0。

範例

15 = 00001111(二進位)

27 = 00011011(二進位)
15 與 27 的位元與運算
00001111
|  00011011
___
00001011 = 11(十進位)

Java 程式

1

2

3

4

5

6

public class BitwiseAND {

public static void main(String[] args) {

int operand1 = 15, operand2 = 27, output = operand1 &amp; operand2;

System.out.println(output);

}

}

登入後複製

輸出:

Java 中的位元操作

3.按位補

與我們迄今為止討論的其他兩個運算符不同,它只需要一個操作數並表示符號“~”。此運算子反轉操作數的位元。如果操作數位為 0,則將其轉換為 1,反之亦然。

範例

15 = 00001111(二進位)

15的位元補運算
~ 00001111
___
11110000 = 240(十進位)

Java 程式

1

2

3

4

5

6

7

public class BitwiseComplement {

public static void main(String[] args) {

int operand= 15, output;

output= ~operand;

System.out.println(output);

}

}

登入後複製

輸出:

Java 中的位元操作

注意:當您執行 Java 程式時,您將得到 -16 作為輸出,而不是 240,因為編譯器顯示該數字的 2 補碼,即二進位數的負數。 任何數的 2 補碼等價於 -(n+1),其中 n 是要計算 2 補碼的數。在我們的例子中,操作數 15 的 2 補碼是 -16,這是程式的輸出。
4.位元異或

位元異或是一個二元運算符,它需要 2 個運算元並用符號「^」表示。此運算子比較兩個運算元的對應位,如果兩個運算元的對應位不同,則輸出 1,否則輸出 0。

位元異或運算子相當於(位元或 + 位元補)

範例

15 = 00001111(二進位)

27 = 00011011(二進位)
15 和 27 的位元異或運算
00001111
^ 00011011
___
00010100 = 20(十進位)

Java 程式

1

2

3

4

5

6

7

public class BitwiseXor {

public static void main(String[] args) {

int operand1= 15, operand2 = 27, output;

output = operand1 ^ operand2;

System.out.println(output);

}

}

登入後複製

輸出:

Java 中的位元操作

5.帶符號左移

左移位元運算子將位元模式向左移動運算元中指定的一定次數。左移運算子以符號“

範例

123(二進位:01111011)

第123章1 的計算結果為 246(二進位:011110110)
第123章2 的計算結果為 492(二進位:0111101100)
第123章3 的計算結果為 984(二進位:01111011000)

Java 程式

1

2

3

4

5

6

7

8

public class LeftShiftOperator {

public static void main(String[] args) {

int operand = 123;

System.out.println(operand &lt;&lt; 1);

System.out.println(operand &lt;&lt; 2);

System.out.println(operand &lt;&lt; 3);

}

}

登入後複製

輸出:

Java 中的位元操作

6.帶符號右移

有符號右移運算子的工作原理與左移運算子完全相同,只是它添加了零位並移至高位。

範例

123(二進位:01111011)

第123話1 的計算結果為 61(二進位:00111101)
第123話2 的計算結果為 30(二進位:00011110)
第123話3 的計算結果為 15(二進位:00001111)

Java 程式

1

2

3

4

5

6

7

8

public class RightShiftOperator {

public static void main(String[] args) {

int operand = 123;

System.out.println(operand &gt;&gt; 1);

System.out.println(operand &gt;&gt; 2);

System.out.println(operand &gt;&gt; 3);

}

}

登入後複製

輸出:

Java 中的位元操作

7.無符號右移

右移運算子將零移到最左邊的位置,移動運算元中指定的一定位數。

Java 程式

1

2

3

4

5

6

7

8

public class UnSignedRightShiftOperator {

public static void main(String[] args) {

int operand = 123;

System.out.println(operand &gt;&gt;&gt; 1);

System.out.println(operand &gt;&gt;&gt; 2);

System.out.println(operand &gt;&gt;&gt; 3);

}

}

登入後複製

輸出:

Java 中的位元操作

結論 – Java 中的位元操作

現在我們已經到了文章的結尾,讓我們總結一下我們在本文中討論的要點。我們已經了解了什麼是位元操作及其不同的用例。我們也學習了不同類型的位元運算子(位元與、位元或、位元補和位元異或)和位移運算子(有符號左移運算子、有符號右移運算子和無符號右移運算子)以及範例和樣本Java 程式解釋各個運算子。

以上是Java 中的位元操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java 中的平方根 Java 中的平方根 Aug 30, 2024 pm 04:26 PM

Java 中的平方根

Java 中的完美數 Java 中的完美數 Aug 30, 2024 pm 04:28 PM

Java 中的完美數

Java 中的隨機數產生器 Java 中的隨機數產生器 Aug 30, 2024 pm 04:27 PM

Java 中的隨機數產生器

Java 中的阿姆斯壯數 Java 中的阿姆斯壯數 Aug 30, 2024 pm 04:26 PM

Java 中的阿姆斯壯數

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java中的Weka

Java Spring 面試題 Java Spring 面試題 Aug 30, 2024 pm 04:29 PM

Java Spring 面試題

Java 中的史密斯數 Java 中的史密斯數 Aug 30, 2024 pm 04:28 PM

Java 中的史密斯數

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

突破或從Java 8流返回?

See all articles