int转byte[]的问题
如题,int转byte[]使用如下方法:
- C# code
byte[] result = BitConverter.GetBytes(255);
得到的结果是这个:
result{255,0,0,0}
但是这不是我要的结果,我希望结果是大小端(高低端)对换,是这个结果:
result{0,0,0,255}
我自己写了一个方法,如下:
- C# code
public void changeEndToStart(byte[] bt, int size) { int i = 0; int half = size / 2; byte b; for (i = 0; i < half; i++) { b = bt[i]; bt[i] = bt[size - i - 1]; bt[size - i - 1] = b; } }
调用这个方法后,得到的结果就是大小端对换后的:
- C# code
byte[] result = BitConverter.GetBytes(255);changeEndToStart(result,4)//得到的result是这个结果:result{0,0,0,255}
请问int转byte[],得到大小端对换的结果,除了刚才我用这个方法,还有其他简洁高效的方法吗?
请给出代码,谢谢
[解决办法]
- C# code
byte[] result = BitConverter.GetBytes(255).Reverse().ToArray() ;
[解决办法]
[解决办法]
在不使用指针的情况下,下面代码是最快的了。
- C# code
public static byte[] IntToByteArray(int value) { byte[] array = new byte[4]; for (int i = 3; i >= 0; i--) { array[i] = (byte)(value & 0xff); value = value >> 8; } return array; }