Em C #, converta ulong [64] para byte [512] mais rápido?
Eu tenho uma maneira que converte ulongs em bytes usando turnos binários em uma instrução for, mas não é muito eficiente em termos de tempo. Existe uma maneira de lançar umulong
matriz de tamanho 64 diretamente em uma matriz de bytes de tamanho 512? Esta é uma seção do código que é executada milhares de vezes e eu preciso salvar todos os milissegundos para poder, por sua vez, salvar segundos.
Edit: Neste momento, é isso que estou fazendo:
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]);
}