a13698822086 发表于 2017-7-2 14:42:47

奇偶位交换

题目描述


  请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)
  给定一个int x,请返回交换后的数int。


测试样例:
10
返回:5


class Exchange {
public:
int exchangeOddEven(int x) {
// write code here
int oddVal = (x & 0xAAAAAAAA); // bit 1 3 5 ... 31
int evenVal = (x & 0x55555555); // bit 0 2 4 ... 30
return (oddVal >> 1) + (evenVal << 1);
}
};
页: [1]
查看完整版本: 奇偶位交换