Feedback

C# - Integer Rotate Left/Right

Veröffentlicht von am 23.12.2007
(1 Bewertungen)
Einfache Umsetzung eines Bit-Rotate für Integer-Werte.

Kann leicht für andere Datentypen (long, byte) umgeschrieben werden.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

public static class Utils
{
	/// <summary>
	/// Rotates the given int value right by the specified number of bits.
	/// </summary>
	/// <param name="number">The integer to rotate</param>
	/// <param name="distance">The number of bits to rotate</param>
	/// <returns>Returns the given int rotated right side by the given distance</returns>
	public static int RotateRight(int i, int distance)
	{
		uint num = (uint)i;
		int length = (sizeof(int) * 8);
		distance = distance % length;
		uint add = num << (length - distance);
		num = num >> distance;
		num = num | add;
		return (int)num;
	}

	/// <summary>
	/// Rotates the given int value left by the specified number of bits.
	/// </summary>
	/// <param name="number">The integer to rotate</param>
	/// <param name="distance">The number of bits to rotate</param>
	/// <returns>Returns the given int rotated left side by the given distance</returns>
	public static int RotateLeft(int i, int distance)
	{
		uint num = (uint)i;
		int length = (sizeof(int) * 8);
		distance = distance % length;
		uint add = num >> (length - distance);
		num = num << distance;
		num = num | add;
		return (int)num;
	}
}

2 Kommentare zum Snippet

v.wochnik schrieb am 24.12.2007:
Coole sache, aber was soll man denn damit machen?
Alexander Schuc schrieb am 24.12.2007:
Vielleicht brauchts mal ein Algorithmus denn du implementieren musst. :)
 

Logge dich ein, um hier zu kommentieren!