2016-05-20 7 views
-1

Zum Beispiel:Reverse Byte Aufträge

Ich versuche, dies zu tun: 0x64CEED7E wird 7EEDCE64.

Dies ist mein Code.

for (int integerTemp = 0; integerTemp < 4; integerTemp++) 
{ 
    generatedKey[integerTemp] = Convert.ToByte(((uint)(integerkey & (0x000000FF << (integerTemp * 8)))) >> (integerTemp * 8)); 
} 

Was ist der beste Weg, dies zu tun?

+0

Mögliche Duplikat [Bitwise Endian-Swap für verschiedene Arten] (http://stackoverflow.com/questions/19560436/bitwise-endian-swap-for- various-Typen) – harold

+0

können Sie verwenden diese: static uint Convert (uint Eingang) { return ((Eingang & 0x000000ffU) << 24) + ((Eingang & 0x0000ff00U) << 8) + ((Eingang & 0x00ff0000U) >> 8) + ((Eingabe & 0xff000000U) >> 24); } – jdweng

Antwort

1

Sie können auch die BitConverter Klasse verwenden:

int key = 0x64CEED7E; 
var bytes = BitConverter.GetBytes(key); 
Array.Reverse(bytes); 
key = BitConverter.ToInt32(bytes, 0); 

Console.WriteLine(key.ToString("x")); 
+0

Das funktioniert. Vielen Dank –