我有一种方法可以使用for循环中的二进制移位将ulong转换为字节,但这不是非常高效的。有没有一种方法可以直接将大小为64的ulong数组转换为大小为512的字节数组?这是运行数千次的代码部分,我需要节省每毫秒的时间,以便节省更多时间。
编辑: 现在我正在做的是:
编辑: 现在我正在做的是:
for (int k = 0; k < ulongs.Length; k++) {
bytes[(k << 3)] = (byte)(ulongs[k] >> 56);
bytes[(k << 3) + 1] = (byte)(ulongs[k] >> 48);
bytes[(k << 3) + 2] = (byte)(ulongs[k] >> 40);
bytes[(k << 3) + 3] = (byte)(ulongs[k] >> 32);
bytes[(k << 3) + 4] = (byte)(ulongs[k] >> 24);
bytes[(k << 3) + 5] = (byte)(ulongs[k] >> 16);
bytes[(k << 3) + 6] = (byte)(ulongs[k] >> 8);
bytes[(k << 3) + 7] = (byte)(ulongs[k]);
}