編寫一個程序交換某個整數的奇數位和偶數位

思路:code

    1,提取x的偶數位,向右平移一位,轉變成奇數位a
it

    2,提取x的奇數位,向左平移一位,轉變爲偶數位b
class

    3,合併a和b,就完成了奇數位和偶數位的交換
co

實現:return

C\C++

int ExchangeBit(int x)
{
    return ((x & 0xAAAAAAAA) >> 1) | ((x & 0x55555555) << 1);
}

這個問題沒有多少實際意義,能夠加深對位操做的一些理解。

相關文章
相關標籤/搜索