力扣_面试题:配对交换

配对交换

链接:力扣(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);
    }
};
相关推荐
luofeiju6 分钟前
数字图像处理与OpenCV初探
c++·图像处理·python·opencv·计算机视觉
whoarethenext6 分钟前
使用 C/C++的OpenCV 将多张图片合成为视频
c语言·c++·opencv
weixin_428498497 分钟前
Catch2 开源库介绍与使用指南
c++
只与明月听19 分钟前
前端学算法-二叉树(一)
前端·javascript·算法
freyazzr24 分钟前
TCP/IP 网络编程 | Reactor事件处理模式
开发语言·网络·c++·网络协议·tcp/ip
电院工程师31 分钟前
SM3算法Python实现(无第三方库)
开发语言·python·算法·安全·密码学
YuTaoShao38 分钟前
Java八股文——MySQL「存储引擎篇」
java·开发语言·mysql
AI风老师40 分钟前
通信网络基础概念
开发语言·网络·php
王德博客1 小时前
【Java课堂笔记】Java 入门基础语法与面向对象三大特性详解
java·开发语言
wkj0011 小时前
接口实现类向上转型和向上转型解析
java·开发语言·c#