思路:code
1,提取x的偶數位,向右平移一位,轉變成奇數位ait
2,提取x的奇數位,向左平移一位,轉變爲偶數位bclass
3,合併a和b,就完成了奇數位和偶數位的交換co
實現:return
C\C++ int ExchangeBit(int x) { return ((x & 0xAAAAAAAA) >> 1) | ((x & 0x55555555) << 1); }
這個問題沒有多少實際意義,能夠加深對位操做的一些理解。