题目描述
请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)
给定一个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;
}
};
本文介绍了一个高效的方法来交换整数的二进制表示中的奇数位和偶数位。通过巧妙地利用位操作符,可以实现这一目标并减少指令数量。

被折叠的 条评论
为什么被折叠?



