力扣_面试题:配对交换

配对交换

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

题目意思就是交换相邻两个二进制位 ,用&分别取出even(偶位和)odd(奇位和)

偶位和用0xAAAAAAAA,奇位和用0x55555555即可,之后得到的偶位和左移,奇位右移,最后用 | 加起来即可

参考代码如下:

cpp 复制代码
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);
    }
};
相关推荐
时间的拾荒人1 分钟前
C语言字符函数与字符串函数完全指南
c语言·开发语言
浆果02073 分钟前
NanoTrack C++ — RK3588 实时目标跟踪
c++·目标跟踪·rk3588
Turbo正则16 分钟前
群论在AI中的应用概述
人工智能·算法·抽象代数
ysa05103020 分钟前
【并查集】判环
c++·笔记·算法
2501_9481069122 分钟前
计算机毕业设计之基于jsp教科研信息共享系统
java·开发语言·信息可视化·spark·课程设计
持力行30 分钟前
C/C++ 中的 char*:它标识数组吗?为什么能用下标访问?
c语言·c++
Jerry37 分钟前
KeetCode 44. 开发商购买土地
算法
取经蜗牛40 分钟前
Python 第一阶段完全指南:从零到第一个实用工具
开发语言·python
Jerry1 小时前
KeetCode 58. 区间和
算法
dog2501 小时前
从重尾到截断流量模型的演进
开发语言·php