我正在寻找一种平滑/快速的方法来检索字节数组中的每个第n个短路并将其复制到新数组。
l = lowerbyte u = upperbyte
我的数据格式如下: byte [] bytes = {a0l,a0u,b0l,b0u,c0l,...,n0l,n0l,a1l,a1u,b1l,...,nXl,nXu}
我需要的是得到长度为X的n个字节数组(例如,[0..X],b [0..X],...或M [a..n] [0 .. X])
我在考虑以下两个步骤:
将值转换为short(=> short [] shorts = {a0,b0,c0,... n0,a1,.. nX}) 通过使用像
这样的东西 short[] shorts= new short[(int)(Math.Ceiling(bytes.Length / 2.0)];
Buffer.BlockCopy(bytes, 0, shorts, 0, bytes.Length);
从短裤中检索每秒的值
I'm looking for some fast code here... something like blockcopy with skip
I am completely aware that I could use a loop - but maybe there's a better
solution to it as I need to do this task for 80MB/s...
将其转换回字节数组(相同 - 使用blockcopy)
byte[] arrayX = new byte[shorts.Length * 2];
Buffer.BlockCopy(shorts, 0, arrayX , 0, arrayX .Length);
非常感谢你!
答案 0 :(得分:0)
我认为您可以将字节直接复制到新的字节数组,为每个短字计算出正确的偏移量。
将它全部转换为单独的短数组并返回字节数组是浪费时间IMO。