/**
Die Schiebeoperatoren kann man zum schnellen Multiplizieren und
Dividieren  ganzer Zahlen mit Zweierpotenzen verwenden.<BR>
Beachten Sie die Bemerkungen zu der zweiten Ausgabezeile.

Das Programm liefert folgende Ausgabe:

-12 >> 2 = -3   also: -12/(2 hoch 2) = -12/4 = -3
-12 >>> 2 = 1073741821  vorzeichenlos behandelt
        Nullen kommen von links,
        daher positiv und so gross
        (32 Bit)
12 << 4 = 192  12*2hoch4 = 192

*/
/*-----------------------------------------------------------------------*/

public class SchiebeOperatoren
{
   public static void main(String[] argv)
   {
       int a, b;

       // Rechts-Schieben um n Stellen
       // entspricht Division durch 2 hoch n
       a = -12;
       b = a >> 2;
       System.out.println(a + " >> 2 = " +  b
                   + "   also: -12/(2 hoch 2) = -12/4 = -3");

       a = -12;
       b = a >>> 2;  // vorzeichenlos behandelt
       System.out.println(a + " >>> 2 = " + b
                   + "  vorzeichenlos behandelt\n"
                   + "\tNullen kommen von links,\n"
                   + "\tdaher positiv und so gross\n"
                   + "\t(32 Bit)");

       // Links-Schieben um n Stellen
       // entspricht Multiplikation mit 2 hoch n
       a = 12;
       b = a << 4; // 12*16
       System.out.println(a + " << 4 = " + b + "  12*(2 hoch 4) = 192");
   }
}
