Java Bitoperatoren

... operieren wie der Name schon sagt mit Bits.

Ein Computer, besser gesagt ein Prozessor versteht nur Bits und Bytes. Also Nullen (0) und Einsen (1).
z.B: 00101001 (Dies ist ein 8-Bit-Code und bedeutet z.B. die Zahl 41)

Ein Code aus 8 Bit = 1 Byte, 16 Bit = 2 Byte, 32 Bit = 4 Byte usw.

Bitoperatoren arbeiten nur mit den Bits ihrer ganzzahligen Operanden.

Die Negation ( dargestellt durch das Zeichen ~ ) liefert bitweise das Komplement des Operanden.

 

Beispiel:

byte a,b;

a = 9;     // Die Zahl 9 in Bit entspricht: 00001001
b = 3;     // Die Zahl 3 in Bit entspricht: 00001001

System.out.println(a & b);     // bitweise Verknüpfung = 1
System.out.println(a | b);      // bitweise Verknüpfung = 11


 

Bitoperatoren

  • ~ a       negiert a bitweise
  • a & b    Verknüpft a und b bitweise durch ein logisches UND 
  • a | b     Verknüpft a und b bitweise durch ein logisches ODER
  • a ^ b    Verknüpft a und b bitweise durch ein logisches XOR

 

Schiebeoperatoren

Diese Operatoren schieben Bits eines ganzzahligen Wertes um eine vorgegebene Anzahl von Stellen nach rechts oder nach links.
(Verschiebt man Bits um eine Stelle nach links entspricht das einer Multiplikation mit dem Faktor 2 - nach rechts einer Division durch 2)

z.B. schieben wir 9 also 00001001 um eine Stelle nach links erhalten wir 00010010 also 18.

  • a << b     Schiebt die Bits in a um b Stellen nach links und füllt mit 0-Bits auf
  • a >> b     Schiebt die Bits in a um b Stellen nach rechts und füllt mit dem höchsten Bit von a auf
  • a >>> b   Schiebt die Bits in a um b Stellen nach rechs und füllt mit 0-Bits auf