Bits rotieren

Java hat zwar Operatoren zum Verschieben der Bit, aber bis Java 5 nicht zum Rotieren. Beim Rotieren werden einige Bit um eine bestimmte Stelle verschoben, doch die herausfallenden Bit kommen auf der anderen Seite wieder hinein.

Eine Funktion ist leicht geschrieben: Der Trick dabei besteht darin, die herausfallenden Bit vorher zu extrahieren und auf der anderen Seite wieder
einzusetzen.

public static int rotateLeft( int v, int n )
{
  return (v << n) | (v >>> (32 – n));
}

public static int rotateRight( int v, int n )
{
  return (v >>> n) | (v << (32 – n));
}

Die Funktionen rotieren jeweils n Bit nach links oder rechts. Da der Datentyp int ist, ist die Verschiebung n in dem Wertebereich von 0 bis 31 sinnvoll.

Seit Java 5 regeln die Funktionen wie Integer.rotateLeft(…) die Rotation.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert