力扣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;
    }
};
相关推荐
缓风浪起32 分钟前
【力扣】2011. 执行操作后的变量值
算法·leetcode·职场和发展
gsfl36 分钟前
双指针算法
算法·双指针
郝学胜-神的一滴36 分钟前
矩阵的奇异值分解(SVD)及其在计算机图形学中的应用
程序人生·线性代数·算法·矩阵·图形渲染
he___H5 小时前
数据结构-移位
数据结构
电子_咸鱼6 小时前
LeetCode——Hot 100【电话号码的字母组合】
数据结构·算法·leetcode·链表·职场和发展·贪心算法·深度优先
仰泳的熊猫6 小时前
LeetCode:785. 判断二分图
数据结构·c++·算法·leetcode
rit84324996 小时前
基于MATLAB实现基于距离的离群点检测算法
人工智能·算法·matlab
my rainy days8 小时前
C++:友元
开发语言·c++·算法
haoly19898 小时前
数据结构和算法篇-归并排序的两个视角-迭代和递归
数据结构·算法·归并排序
微笑尅乐8 小时前
中点为根——力扣108.讲有序数组转换为二叉搜索树
算法·leetcode·职场和发展