赞
踩
配对交换
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目意思就是交换相邻两个二进制位 ,用&分别取出even(偶位和)odd(奇位和)
偶位和用0xAAAAAAAA,奇位和用0x55555555即可,之后得到的偶位和左移,奇位右移,最后用 | 加起来即可
参考代码如下:
- class Solution {
- public:
- int exchangeBits(int num) {
- int even_bits = num & 0xAAAAAAAA;
- int odd_bits = num & 0x55555555;
-
- even_bits >>= 1;
- odd_bits <<= 1;
-
- return (even_bits | odd_bits);
- }
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。