Bit-Operatoren in Java
public final class Main { public static void main( final java.lang.String[] args ) { java.lang.System.out.println( java.lang.Integer.toBinaryString( ~0b1001 )); }} 11111111111111111111111111110110
Es gibt auch den Zuweisungsoperator |=.
public final class Main { public static void main( final java.lang.String[] args ) { java.lang.System.out.println( java.lang.Integer.toBinaryString( 0b1000 | 0b0001 )); }} 1001
Es gibt auch den Zuweisungsoperator |=.
public final class Main { public static void main( final java.lang.String[] args ) { java.lang.System.out.println( java.lang.Integer.toBinaryString( 0b1101 & 0b1110 )); }} 1100
Es gibt auch den Zuweisungsoperator &=.
public final class Main { public static void main( final java.lang.String[] args ) { java.lang.System.out.println( java.lang.Integer.toBinaryString( 0b1101 ^ 0b1110 )); }} 11
Es gibt auch den Zuweisungsoperator ^=.
Einsatzmöglichkeit von Exklusiv-Oder: Vertauschen zweier gleichgroßer Bitsequenzen, Verschlüsselung
public final class Main { public static void main( final java.lang.String[] args ) { java.lang.System.out.println( java.lang.Integer.toBinaryString( 0b101 << 2 )); }} 10100 public final class Main { public static void main( final java.lang.String[] args ) { java.lang.System.out.println( java.lang.Integer.toBinaryString( 0b10100 >> 2 )); }} 101
The unsigned right shift operator ">>>" shifts a zero into the leftmost position, while the leftmost position after ">>" depends on sign extension.
public final class Main { public static void main( final java.lang.String[] args ) { java.lang.System.out.println( java.lang.Integer.toBinaryString( +8 ));
java.lang.System.out.println( java.lang.Integer.toBinaryString( -8 ));
java.lang.System.out.println( java.lang.Integer.toBinaryString( +8 >> 1 ));
java.lang.System.out.println( java.lang.Integer.toBinaryString( -8 >> 1 ));
java.lang.System.out.println( java.lang.Integer.toBinaryString( +8 >>> 1 ));
java.lang.System.out.println( java.lang.Integer.toBinaryString( -8 >>> 1 )); }} 00000000000000000000000000001000
11111111111111111111111111111000 00000000000000000000000000000100
11111111111111111111111111111100 00000000000000000000000000000100
01111111111111111111111111111100- postfix: ++ --
- prefix: ++ -- + - ~ !
- multiplicative: * / %
- additive: + -
- shift: << >> >>>
- relational: < > <= >= instanceof
- equality : == !=
- bitwise AND : &
- bitwise exclusive OR : ^
- bitwise inclusive OR : |
- logical AND : &&
- logical OR : ||
- ternary : ? :
- assignment : = += -= *= /= %= &= ^= |= <<= >>= >>>=
- Die Präzendenzen sind so festgelegt, daß man die folgende Zuweisung ohne Klammern schreiben kann.
- x = ++a *2 == b++ - 2 OR c + 3 < e * 2