从服务器端读取一个.dat文件,在客户端这边转换成一个byte[],现在要对这个byte[]进行高低位转换,转换后成为一个新的byte[],这该采用什么方法?
举个例子就是本来服务器端的.dat文件里面本来是0x00004321432143210000,但我未转换的话读出来的是0x00002143214321430000,就是怎么把后面这个转换成前面那个?
很简单
byte[] b = File.ReadAllBytes("1.dat");
var query = b.Select((x, i) => new { x, i }).GroupBy(x => x.i / 2).SelectMany(x => new byte[] { x.Last().x, x.First().x });
楼上的觉得好用点。。从第一个数组最后面开始遍历到新数组里机。。好像提供的有反转方法,直接转换了
忍不住回答下
假设有byte[]数组如下
byte[] res = new byte[]{1,2,3,4,5,6,7,8,9,10};
Array.Reverse(res);
res结果为{10,9,8,7,6,5,4,3,2,1}
---------------------------------------------------------------分割线---------------------------------------------
举个例子说明高地位转换
假设有一个数为254,那么它的二进制数就为1111 1110,1111就是高位 1110就是低位。 转换后就为 1110 1111
转换算法为 0xfe&0x0f< 0fe&0xf0>>4 取得高位
两者相加就为0xef
--------------------------------------------------------完毕--------------------------------------------------------------