logo

Bitweise Operatoren in Java


Betreiber bilden den Grundbaustein jeder Programmiersprache. Auch Java bietet viele Arten von Operatoren, die je nach Bedarf zur Durchführung verschiedener Berechnungen und Funktionen verwendet werden können, sei es logisch, arithmetisch, relational usw. Sie werden basierend auf der von ihnen bereitgestellten Funktionalität klassifiziert. Hier sind einige Typen:

Bash für Schleife 1 bis 10
  1. Rechenzeichen
  2. Unäre Operatoren
  3. Aufgabenverwalter
  4. Vergleichsoperatoren
  5. Logische Operatoren
  6. Ternärer Operator
  7. Bitweise Operatoren
  8. Schichtoperatoren

In diesem Artikel wird alles erklärt, was man über bitweise Operatoren wissen muss.

Bitweise Operatoren

Bitweise Operatoren dienen der Manipulation einzelner Bits einer Zahl. Sie können mit jedem ganzzahligen Typ (char, short, int usw.) verwendet werden. Sie werden bei der Durchführung von Aktualisierungs- und Abfragevorgängen der binär indizierten Bäume verwendet.



Schauen wir uns nun jeden einzelnen bitweisen Operator in Java an:

1. Bitweises ODER (|)

Dieser Operator ist ein binärer Operator, der mit „|“ gekennzeichnet ist. Es gibt eine bitweise ODER-Verknüpfung der Eingabewerte zurück, d. h. wenn eines der Bits 1 ist, ergibt es 1, andernfalls wird 0 angezeigt.

Beispiel:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise OR Operation of 5 and 7  0101 | 0111  ________  0111 = 7 (In decimal)>

2. Bitweises UND (&)

Konvertieren Sie char in int Java

Dieser Operator ist ein binärer Operator, der mit „&“ bezeichnet wird. Er gibt ein bitweises UND von Eingabewerten zurück, d. h. wenn beide Bits 1 sind, ergibt er 1, andernfalls zeigt er 0 an.

Beispiel:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise AND Operation of 5 and 7  0101 & 0111  ________  0101 = 5 (In decimal)>

3. Bitweises XOR (^)

Dieser Operator ist ein binärer Operator, der mit „^“ bezeichnet wird. Er gibt eine bitweise XOR-Verknüpfung von Eingabewerten zurück, d. h. wenn entsprechende Bits unterschiedlich sind, ergibt er 1, andernfalls zeigt er 0 an.

Beispiel:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise XOR Operation of 5 and 7  0101 ^ 0111  ________  0010 = 2 (In decimal)>

4. Bitweises Komplement (~)

Dieser Operator ist ein unärer Operator, der mit „~“ bezeichnet wird. Er gibt die Einserkomplementdarstellung des Eingabewerts zurück, d. h. alle Bits sind invertiert, was bedeutet, dass jede 0 zu 1 und jede 1 zu 0 wird.

Beispiel:

a = 5 = 0101 (In Binary)  Bitwise Complement Operation of 5  ~ 0101  ________  1010 = 10 (In decimal)>

Notiz: Der Compiler gibt das Zweierkomplement dieser Zahl aus, d. h. das Zweierkomplement von 10 ist -6.

Java
// Java program to illustrate // bitwise operators public class operators {  public static void main(String[] args)   b));  // bitwise xor  // 0101 ^ 0111=0010 = 2  System.out.println('a^b = ' + (a ^ b));  // bitwise not  // ~00000000 00000000 00000000 00000101=11111111 11111111 11111111 11111010  // will give 2's complement (32 bit) of 5 = -6  System.out.println('~a = ' + ~a);  // can also be combined with  // assignment operator to provide shorthand  // assignment  // a=a&b  a &= b;  System.out.println('a= ' + a);   }>

Ausgabe
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>

Hilfsraum:O(1)

Zeitkomplexität:O(1)

Java
// Demonstrating the bitwise logical operators class GFG {  public static void main (String[] args) {    String binary[]={  '0000','0001','0010','0011','0100','0101',  '0110','0111','1000','1001','1010',  '1011','1100','1101','1110','1111'  };    // initializing the values of a and b   int a=3; // 0+2+1 or 0011 in binary  int b=6; // 4+2+0 or 0110 in binary    // bitwise or  int c= a | b;    // bitwise and  int d= a & b;    // bitwise xor  int e= a ^ b;    // bitwise not  int f= (~a & b)|(a &~b);  int g= ~a & 0x0f;      System.out.println(' a= '+binary[a]);  System.out.println(' b= '+binary[b]);  System.out.println(' a|b= '+binary[c]);  System.out.println(' a&b= '+binary[d]);  System.out.println(' a^b= '+binary[e]);  System.out.println('~a & b|a&~b= '+binary[f]);  System.out.println('~a= '+binary[g]);  } }>

Ausgabe
 a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>

Bit-Shift-Operatoren (Shift-Operatoren)

Schiebeoperatoren werden verwendet, um die Bits einer Zahl nach links oder rechts zu verschieben und so die Zahl mit zwei zu multiplizieren bzw. zu dividieren. Sie können verwendet werden, wenn wir eine Zahl mit zwei multiplizieren oder dividieren müssen.

Starten Sie MySQL Ubuntu neu

Syntax:

 number   shift_op   number_of_places_to_shift;>

Arten von Schichtoperatoren:

Schichtoperatoren werden weiter in 4 Typen unterteilt. Diese sind:

  1. Signierter Rechtsverschiebungsoperator (>>)
  2. Vorzeichenloser Rechtsverschiebungsoperator (>>>)
  3. Linksverschiebungsoperator (<<)
  4. Vorzeichenloser Linksverschiebungsoperator (<<<)

Notiz: Weitere Einzelheiten zu den Shift-Operatoren in Java finden Sie unter Shift-Operator in Java .

Programm zur Implementierung aller Bitwise-Operatoren in Java für Benutzereingaben

Java
import java.util.Scanner; public class BitwiseOperators {  public static void main(String[] args)   Scanner input = new Scanner(System.in);  System.out.print('Enter first number: ');  int num1 = input.nextInt();  System.out.print('Enter second number: ');  int num2 = input.nextInt();  System.out.println('Bitwise AND: ' + (num1 & num2));  System.out.println('Bitwise OR: ' + (num1  }>

Eingang

Enter first number: 4 Enter second number: 8>

Ausgabe

Python neue Zeile
Bitwise AND: 0 Bitwise OR: 12 Bitwise XOR: 12 Bitwise NOT: -5 Bitwise Left Shift: 16 Bitwise Right Shift: 1 Bitwise Unsigned Right Shift: 1>

Erläuterung

Dieses Programm fordert den Benutzer auf, zwei Zahlen einzugeben: num1 und num2. Anschließend führt es die folgenden bitweisen Operationen mit den Operatoren &, |, ^, ~, <> und>>> aus:

Bitweises UND
Bitweises ODER
Bitweises XOR
Bitweise NICHT
Bitweise Linksverschiebung
Bitweise Rechtsverschiebung
Bitweise Nullfüllung nach rechts verschieben

Vorteile

Die Vorteile der Verwendung bitweiser Operatoren in Java sind:

  1. Geschwindigkeit: Bitweise Operationen sind viel schneller als arithmetische Operationen, da sie direkt mit binären Darstellungen von Zahlen arbeiten.
  2. Raumoptimierung: Bitweise Operationen können verwendet werden, um mehrere Werte in einer einzigen Variablen zu speichern, was bei der Arbeit mit begrenztem Speicher nützlich sein kann.
  3. Bitmanipulation: Bitweise Operatoren ermöglichen eine präzise Steuerung einzelner Bits einer Zahl, was in verschiedenen Anwendungen wie Kryptographie, Fehlererkennung und Komprimierung nützlich sein kann.
  4. Code-Vereinfachung : Bitweise Operationen können den Code vereinfachen, indem sie die Anzahl der bedingten Anweisungen und Schleifen reduzieren, die zum Ausführen bestimmter Aufgaben erforderlich sind.

Zusammenfassend lässt sich sagen, dass Bitweise Operatoren ein wichtiges Werkzeug zur Leistungsoptimierung, Verbesserung der Codelesbarkeit und Reduzierung der Codekomplexität in Java-Anwendungen sind.