力扣190:颠倒二进制位

力扣190:颠倒二进制位

题目

颠倒给定的 32 位无符号整数number的二进制位。

思路

思路很简单,我们只需要得到number从低位到高位的每一个二进制位再把二进制位移到颠倒的res的对应二进制位即可,例如number的最低位为1那么res的最高位即1,也就是number的第i位是res的第31-i位。

代码

cpp 复制代码
class Solution {
public:
    int reverseBits(int n) {
        if(n == 0)
        {
            return 0;
        }
        int res = 0;
        for(int i = 0; i < 32;i++)
        {
            //res |= x 使用按位或得到每一个二进制位的值
            //(n&1) 与1进行按位与得到n的最低位的二进制值
            //x <<(31-i) 将x左移31-i位也就是将当前二进制位移到颠倒后的位置
            res |= (n&1) << (31-i);
            // x >>= 1 右移一位,舍弃最低位高位由0填补
            n >>= 1;
        }
        return res;
    }
};
相关推荐
与己斗其乐无穷9 小时前
算法(一)双指针法
数据结构·算法·排序算法
努力努力再努力wz9 小时前
【C++进阶系列】:位图和布隆过滤器(附模拟实现的源码)
java·linux·运维·开发语言·数据结构·c++
eSoftJourney9 小时前
C 语言核心关键字与数据结构:volatile、struct、union 详解
c语言·数据结构
(❁´◡`❁)Jimmy(❁´◡`❁)10 小时前
【Trie】 UVA1401 Remember the Word
算法·word·图论
小年糕是糕手11 小时前
【C语言】C语言预处理详解,从基础到进阶的全面讲解
linux·c语言·开发语言·数据结构·c++·windows·microsoft
高山有多高12 小时前
从 0 到 1 保姆级实现C语言双向链表
c语言·开发语言·数据结构·c++·算法·visual studio
今后12312 小时前
【数据结构】冒泡、选择、插入、希尔排序的实现
数据结构·算法·排序算法
草莓熊Lotso12 小时前
《算法闯关指南:优选算法--滑动窗口》--14找到字符串中所有字母异位词
java·linux·开发语言·c++·算法·java-ee
hhhhhshiyishi12 小时前
WLB公司内推|招联金融2026届校招|18薪
java·算法·机器学习·金融·求职招聘
---学无止境---12 小时前
九、内核数据结构之list
linux·数据结构·list