【程序员面试金典】请编写程序交换一个数的二进制的奇数位和偶数位。

题目描述

请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)

给定一个int x,请返回交换后的数int。

测试样例:

10
返回:5

class Exchange {
public:
    int exchangeOddEven(int x) {
        // write code here
        int odd  = ((x&0x55555555)<<1);
        int even = ((x&0xAAAAAAAA)>>1)&0x7fffffff; 
        return even|odd;
    }
};

猜你喜欢

转载自blog.csdn.net/hellozex/article/details/81162089
今日推荐