Heim  >  Artikel  >  Java  >  Bitmanipulation in Java

Bitmanipulation in Java

王林
王林Original
2024-08-30 15:59:40881Durchsuche

Normalerweise arbeitet ein Programmierer mit Variablen von Datentypen wie int, float, double, String oder Sammlungen wie Array, List, ArrayList usw. In manchen Fällen müssen Programmierer viel tiefer in die Daten auf Byte- und Bitebene vordringen, um die Daten zu extrahieren und zu manipulieren. Mit Sprachen wie Java und C# können Sie Daten auf Bitebene manipulieren, was bedeutet, dass Sie Zugriff auf ein bestimmtes Bit in einem Byte haben. In diesem Thema lernen wir etwas über Bit-Manipulation in Java.

Bei der Arbeit an der Datenkomprimierung und Datenverschlüsselung ist in Java häufig eine Bitmanipulation erforderlich, bei der der Programmierer Daten auf Bitebene extrahieren muss, um die Originaldaten zu kodieren, zu dekodieren oder zu komprimieren. Es gibt viele andere Anwendungen der Bit-Manipulation, die wir später in diesem Artikel sehen werden.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Java unterstützt 3-Bit-Verschiebung und 4 bitweise Operatoren, um Operationen auf Bitebene auszuführen. Diese Operatoren können für Integraltypen (int, short, long und byte) verwendet werden, um Operationen auf Bitebene auszuführen.

Java Bitwise- und Bitshift-Operatoren

Im Folgenden sind die Operatoren aufgeführt:

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

Operatoren der Bitmanipulation in Java

Schauen wir uns die Operatoren genauer an.

1. Bitweises ODER

Dies ist ein binärer Operator, der zwei Operanden benötigt und durch das Symbol „|“ gekennzeichnet ist „. Der bitweise Operator vergleicht die entsprechenden Bits der beiden Operanden. Wenn eines der Operandenbits 1 ist, ist die Ausgabe 1; Wenn nicht, ist es 0.

Beispiel

15 = 00001111 (Binär)
27 = 00011011 (Binär)
Bitweise ODER-Verknüpfung von 15 und 27
00001111
|  00011011
________
00011111  = 31 (in Dezimalzahl)

Java-Programm

public class BitwiseOR {
public static void main(String[] args) {
int operand1 = 15, operand2 = 27, output = operand1 | operand2;
System.out.println(output);
}
}

Ausgabe:

Bitmanipulation in Java

2.Bitweises UND

Dies ist ebenfalls ein bitweiser Operator, der zwei Operanden benötigt und durch das Symbol „&“ gekennzeichnet ist. Der bitweise Operator vergleicht die entsprechenden Bits der beiden Operanden. Wenn beide Operandenbits 1 sind, ist die Ausgabe 1; andernfalls 0.

Beispiel

15 = 00001111 (Binär)
27 = 00011011 (Binär)
Bitweise UND-Verknüpfung von 15 und 27
00001111
|  00011011
________
00001011  = 11 (in Dezimalzahl)

Java-Programm

public class BitwiseAND {
public static void main(String[] args) {
int operand1 = 15, operand2 = 27, output = operand1 & operand2;
System.out.println(output);
}
}

Ausgabe:

Bitmanipulation in Java

3. Bitweises Komplement

Im Gegensatz zu den beiden anderen Operatoren, die wir bisher besprochen haben, benötigt dieser nur einen Operanden und bezeichnet das Symbol „~“. Dieser Operator invertiert das Bit des Operanden. Wenn das Operandenbit 0 ist, wird es in 1 umgewandelt und umgekehrt.

Beispiel

15 = 00001111 (Binär)
Bitweise Komplementoperation von 15
~ 00001111
________
11110000  = 240 (in Dezimalzahl)

Java-Programm

public class BitwiseComplement {
public static void main(String[] args) {
int operand= 15, output;
output= ~operand;
System.out.println(output);
}
}

Ausgabe:

Bitmanipulation in Java

Hinweis: Wenn Sie das Java-Programm ausführen, erhalten Sie als Ausgabe -16 statt 240, da der Compiler das Zweierkomplement dieser Zahl anzeigt, d. h. den negativen Begriff der Binärzahl.
Das Zweierkomplement einer beliebigen Zahl entspricht -(n+1), wobei n die Zahl ist, deren Zweierkomplement berechnet werden soll. In unserem Fall ist das Zweierkomplement von Operand 15 -16, was die Ausgabe des Programms ist.

4. Bitweises XOR

Bitweises XOR ist ein binärer Operator, der zwei Operanden akzeptiert und mit dem Symbol „^“ bezeichnet wird. Dieser Operator vergleicht die entsprechenden Bits der beiden Operanden. Wenn die entsprechenden Bits der beiden Operanden unterschiedlich sind, gibt er als Ausgabe 1 aus, andernfalls 0.

Bitweiser XOR-Operator entspricht (Bitweises ODER + Bitweises Komplement)

Beispiel

15 = 00001111 (Binär)
27 = 00011011 (Binär)
Bitweise XOR-Operation von 15 und 27
00001111
^ 00011011
________
00010100  = 20 (in Dezimalzahl)

Java-Programm

public class BitwiseXor {
public static void main(String[] args) {
int operand1= 15, operand2 = 27, output;
output = operand1 ^ operand2;
System.out.println(output);
}
}

Ausgabe:

Bitmanipulation in Java

5. Signiert Left Shift

Der bitweise Linksverschiebungsoperator verschiebt das Bitmuster um eine bestimmte im Operanden angegebene Anzahl von Malen nach links. Der Linksverschiebungsoperator wird durch das Symbol „<<“ gekennzeichnet.

Beispiel

123 (Binär: 01111011)
123 << 1 ergibt 246 (binär: 011110110)
123 << 2 ergibt 492 (binär: 0111101100)
123 << 3 ergibt 984  (Binär: 01111011000)

Java-Programm

public class LeftShiftOperator {
public static void main(String[] args) {
int operand = 123;
System.out.println(operand << 1);
System.out.println(operand << 2);
System.out.println(operand << 3);
}
}

Ausgabe:

Bitmanipulation in Java

6. Rechtsverschiebung signiert

Der vorzeichenbehaftete Rechtsverschiebungsoperator funktioniert genauso wie der Linksverschiebungsoperator, nur dass er Nullbits hinzufügt und in die höherwertige Position verschiebt.

Beispiel

123 (Binär: 01111011)
123 >> 1 ergibt 61 (binär: 00111101)
123 >> 2 ergibt 30 (binär: 00011110)
123 >> 3 ergibt 15  (Binär: 00001111)

Java-Programm

public class RightShiftOperator {
public static void main(String[] args) {
int operand = 123;
System.out.println(operand >> 1);
System.out.println(operand >> 2);
System.out.println(operand >> 3);
}
}

Ausgabe:

Bitmanipulation in Java

7. Rechtsverschiebung ohne Vorzeichen

Der rechte Verschiebungsoperator verschiebt Null um die bestimmte Anzahl von Bits, die im Operanden angegeben ist, an die Position ganz links.

Java-Programm

public class UnSignedRightShiftOperator {
public static void main(String[] args) {
int operand = 123;
System.out.println(operand >>> 1);
System.out.println(operand >>> 2);
System.out.println(operand >>> 3);
}
}

Ausgabe:

Bitmanipulation in Java

Fazit – Bit-Manipulation in Java

Da wir nun am Ende des Artikels angelangt sind, fassen wir zum Abschluss den wichtigsten Punkt zusammen, den wir in diesem Artikel besprochen haben. Wir haben gesehen, was eine Bitmanipulation ist und welche unterschiedlichen Anwendungsfälle sie hat. Wir haben auch die verschiedenen Arten von bitweisen Operatoren (Bitweises UND, bitweises ODER, bitweises Komplement und bitweises XOR) und Bitverschiebungsoperatoren (vorzeichenbehafteter linker Verschiebungsoperator, vorzeichenbehafteter rechter Verschiebungsoperator und vorzeichenlose rechte Verschiebungsoperatoren) zusammen mit einem Beispiel und einem Muster kennengelernt Java-Programm, das einzelne Operatoren erklärt.

Das obige ist der detaillierte Inhalt vonBitmanipulation in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn