配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位
0与位
1交换,位
2与位
3交换,以此类推)。
示例
1:
输入:num
= 2(或者
0b10)
输出
1 (或者
0b01)
示例
2:
输入:num
= 3
输出:
3
提示
:
num的范围在
[0, 2^30 - 1]之间,不会发生整数溢出。
num & 0x55555555:保留了奇数位上的数 num & 0xaaaaaaaa:保留了奇数位上的数 奇数位右移,偶数位左移即可
class Solution:
def exchangeBits(self
, num
: int) -> int:
return ((num
&0xaaaaaaaa)>>1)|((num
&0x55555555)<<1)