我目前正在读取一个文件,并希望能够将从该文件获得的字节数组转换为短数组。
我该怎么做呢?
发布于 2009-07-09 15:25:38
一种可能性是使用Enumerable.Select
byte[] bytes;
var shorts = bytes.Select(b => (short)b).ToArray();
另一种是使用Array.ConvertAll
byte[] bytes;
var shorts = Array.ConvertAll(bytes, b => (short)b);
发布于 2010-10-31 02:27:11
使用Buffer.BlockCopy。
创建长度为字节数组一半大小的短数组,并将字节数据复制到:
short[] sdata = new short[(int)Math.Ceiling(data.Length / 2)];
Buffer.BlockCopy(data, 0, sdata, 0, data.Length);
这是迄今为止最快的方法。
发布于 2009-08-09 00:31:24
速记是由两个字节组成的复合体。如果你把所有的短片都作为真正的短片写入文件,那么这些转换就是错误的。您必须使用两个字节来获取真正的短值,使用如下所示:
short s = (short)(bytes[0] | (bytes[1] << 8))
https://stackoverflow.com/questions/1104599
复制相似问题