力扣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;
    }
};
相关推荐
paeamecium6 分钟前
【PAT甲级真题】- Student List for Course (25)
数据结构·c++·算法·list·pat考试
Book思议-14 分钟前
【数据结构】栈与队列全方位对比 + C 语言完整实现
c语言·数据结构·算法··队列
SteveSenna15 分钟前
项目:Trossen Arm MuJoCo
人工智能·学习·算法
NAGNIP27 分钟前
一文搞懂CNN经典架构-DenseNet!
算法·面试
道法自然|~33 分钟前
BugCTF黄道十二宫
算法·密码学
WHS-_-20222 小时前
Python 算法题学习笔记一
python·学习·算法
是苏浙2 小时前
初识集合框架
java·数据结构
沉鱼.442 小时前
第六届题目
算法
黑眼圈子2 小时前
总结一下用Java做算法的常用类和方法
java·开发语言·算法
apcipot_rain2 小时前
天梯赛练习集 时间规划 限时复盘 中档题详解(L1-6~L2-4)
算法