【发布时间】:2016-12-18 19:56:16
【问题描述】:
我有一个音频数据数组,它是由字节数组表示的大量 Int32 数字(每个 4 字节元素代表一个 Int32),我想对数据进行一些操作(例如,将 10 添加到每个Int32)。
我将字节转换为 Int32,进行操作并将其转换回字节,如下例所示:
//byte[] buffer;
for (int i=0; i<buffer.Length; i+=4)
{
Int32 temp0 = BitConverter.ToInt32(buffer, i);
temp0 += 10;
byte[] temp1 = BitConverter.GetBytes(temp0);
for (int j=0;j<4;j++)
{
buffer[i + j] = temp1[j];
}
}
但我想知道是否有更好的方法来进行这种操作。
【问题讨论】:
-
如果你知道字节的顺序,你可以直接在字节上自己添加。
-
定义“更好”。你觉得这不可读吗?是不是太慢了?
-
我觉得这既丑陋又缓慢,任何可以改进的建议都将不胜感激。
-
@MillieSmith 如果这就是你的意思,它是大端,但我不确定在每次处理进位位的同时添加字节会更快。你有更好的主意吗?
-
@pio 如果是大端,不要使用
BitConverter类。BitConverter类假定您系统的本机字节序。