public class Test {
public static void main(String[] args) {
// 1. Nach links verschieben ( << )
// 0000 0000 0000 0000 0000 0000 0000 0101 Dann Nach der Verschiebung um 2 Bits nach links wird das Low-Bit mit 0 gefüllt: //
// 0000 0000 0000 0000 0000 0000 0001 0100 in Dezimal umgewandelt ist 20
System.out.println(5 << 2);/ / Das laufende Ergebnis ist 20
// 2. Nach rechts verschieben ( >> ) und das Vorzeichenbit in das High-Bit füllen
// 0000 0000 0000 0000 0000 0000 0000 0101 Dann um 2 Bit nach rechts verschieben und das hohe Bit mit 0 füllen:
// 0000 0000 0000 0000 0000 0000 0000 0001
System.out.println(5 >> 2); // Das Operationsergebnis ist 1
// 3. Vorzeichenlose Rechtsverschiebung ( > Wir verschieben 5 um 3 Bits nach rechts, -5 um 3 Bits und vorzeichenlose Rechtsverschiebung um 3 Bits:
System.out.println(5 > > 3); // Das Ergebnis ist 0
System.out.println(-5 >> 3);// Das Ergebnis ist -1
System.out.println(-5 >> ;> 3);// Das Ergebnis ist 536870911
// 4. Bit AND ( & )
// Bit AND: Das n-te Bit des ersten Operanden liegt am n-ten Bit des zweiter Operand. Wenn beide 1 sind, ist das n-te Bit des Ergebnisses ebenfalls 1, andernfalls ist es 0
System.out.println(5 & 3);//Das Ergebnis ist 1
System.out .println(4 & 1);//Das Ergebnis ist 0
// 5. Bitweises ODER ( | )
// Das n-te Bit des ersten Operanden befindet sich im n-ten Bit des zweiten Operand. Solange einer von ihnen 1 ist, ist das n-te Bit des Ergebnisses ebenfalls 1, andernfalls ist es 0
System.out.println(5 | 3);//Das Ergebnis ist 7
// 6. Bit XOR (^)
// Der erste Operand n liegt am n-ten Bit des zweiten Operanden. Im Gegenteil, dann ist das n-te Bit des Ergebnisses ebenfalls 1, andernfalls ist es 0
System.out.println(5 ^ 3); //Das Ergebnis ist 6
// 7. Bit-Negation ( ~ )
// Wenn das n-te Bit des Operanden 1 ist, dann das n-te Bit des Ergebnisses ist 0 und umgekehrt.
System.out.println(~5); // Das Ergebnis ist -6
}