奇偶位交换 牛客网 程序员面试金典 C++ Python
-
题目描述
-
请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)
-
给定一个int x,请返回交换后的数int。
-
测试样例:
-
10
-
返回:5
C++
class Exchange {
public:
//run:2ms memory:480k
int exchangeOddEven(int x) {
return ((x & 0xaaaaaaaa) >> 1 | (x & 0x55555555) << 1);
}
};
Python
class Exchange:
#run:21ms memory:5864k
def exchangeOddEven(self, x):
return ((x & 0xaaaaaaaa) >> 1 | (x & 0x55555555) << 1)