奇偶位交换

来源:互联网 发布:白人帅哥 知乎 编辑:程序博客网 时间:2024/06/06 00:11

题目描述
请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)
给定一个int x,请返回交换后的数int。
测试样例:
10
返回:5

先与0xaaaaaaaa相与取出x的奇数位,再与0x55555555相与取出偶数位。最后使用按位或,将这两个数结合起来。

class Exchange {public:    int exchangeOddEven(int x) {        // write code here        return (((x&0xaaaaaaaaaaaaaaaa)>>1)|((x&0x5555555555555555)<<1));    }};
0 0
原创粉丝点击