2016-05-20 80 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。谢谢 –