首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

int转byte[]的有关问题

2012-03-22 
int转byte[]的问题如题,int转byte[]使用如下方法:C# codebyte[] result BitConverter.GetBytes(255)得

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
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;        } 

热点排行