The following code reverses an N-bit quantity in parallel. How many operations does it take?
unsigned int v; // 32 bit word to reverse bit order
v = ((v& >> 1)& 0x55555555) | ((v & 0x55555555)<<1); // swap odd and even v = ((v >> 2) & 0x33333333) | ((v & 0x33333333)<<2); // swapconsecutivepair v = ((v >> 4) & 0x0F0F0F0F) | ((v & 0x0F0F0F0F)<<4); // swap nibbles v = ((v >> 8) & 0x00FF00FF) | ((v & 0x00FF00FF)<<8); // swap bytes v = ( v >> 16 ) | ( v <<16); // swap 2-byte long pairs