Various architectures provide native instructions that compute this operation, or parts of it. For instance, there exist instructions to convert or lookup many bytes/words/dwords at once as a vectorized operation. http://stackoverflow.com/questions/746171/best-algorithm-for-bit-reversal-from-msb-lsb-to-lsb-msb-in-c#24058332 provides one approach, which uses a vector register directly as a lookup table for nibbles.
Various architectures provide native instructions that compute this operation, or parts of it. For instance, there exist instructions to convert or lookup many bytes/words/dwords at once as a vectorized operation. http://stackoverflow.com/questions/746171/best-algorithm-for-bit-reversal-from-msb-lsb-to-lsb-msb-in-c#24058332 provides one approach, which uses a vector register directly as a lookup table for nibbles.