2016-05-20 115 views
-1

例如:反向字節順序

我試圖這樣做:0x64CEED7E變成7EEDCE64。

這是我的代碼。

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

這樣做的最好方法是什麼?

+0

[各種類型的按位端交換(的可能的複製http://stackoverflow.com/questions/19560436/bitwise-endian-swap-for-不同類型) – harold

+0

您可以使用此:靜態UINT轉換(UINT輸入) { 回報 ((輸入和0x000000ffU)<< 24)+ ((輸入和0x0000ff00U)<< 8)+ ((輸入& 0x00ff0000U)>> 8)+ ((input&0xff000000U)>> 24); } – jdweng

回答

1

您還可以使用BitConverter類:

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

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

This Works。謝謝 –