swap Adjacent Bits
int swapAdjacentBits(int n) {
return (((n>>1)&0b01010101010101010101010101010101) +
((n<<1)&0b10101010101010101010101010101010)) ;
}
int swapAdjacentBits(int n) {
return ( ((n & 0xaaaaaaaa) >> 1) | ((n & 0x55555555) << 1) );
}