leetcode:190. 颠倒二进制位

一、题目:

函数原型:

uint32_t reverseBits(uint32_t n)

解释:uint32是无符号int或short的别称,传入的参数是一个32位二进制串,返回值是该32位二进制串逆序后的十进制值
二、思路:

实际上并不需要真的去逆序二进制串,只需要将逆序的的二进制串的十进制结果计算出来即可。那么只要每次取出原二进制串的一个低位,作为新二进制串的一个高位来计算。例如,取出原二进制串的最后一位,乘以2^31即可得到新二进制串的第一位;取出原二进制串的倒数第二位,乘以2^30即可得到新二进制串的第二位......如此以来,设置循环,共32次,每次将原二进制串按位与1即可得到低最位,然后右移原二进制串。将所有的结果相加即可得到新二进制串的十进制结果。
三、代码:

cpp 复制代码
uint32_t reverseBits(uint32_t n) {
    int result=0;
    for(int i=0;i<32;i++)
    {
        result+=((n>>i)&1)*pow(2,31-i);
    }
    return result;
}
相关推荐
zephyr052 分钟前
DP 从放弃到拿捏:一份持续更新的动态规划题解清单(一)
算法·动态规划
岛雨QA5 分钟前
树结构的基础部分「Java数据结构与算法学习笔记9」
数据结构·算法
会编程的土豆5 分钟前
2.25 做题
数据结构·c++·算法
Frostnova丶16 分钟前
LeetCode 1356. 根据数字二进制下1的数目排序
数据结构·算法·leetcode
GEO行业研究员21 分钟前
AI是否正在重构个体在健康相关场景中的决策路径——基于系统建模与决策链条结构分析的讨论
人工智能·算法·重构·geo优化·医疗geo·医疗geo优化
岛雨QA24 分钟前
哈希表「Java数据结构与算法学习笔记8」
数据结构·算法
独自破碎E29 分钟前
【DFS】BISHI76 迷宫寻路
算法·深度优先
寄存器漫游者36 分钟前
Linux 线程间通信
数据库·算法
岛雨QA1 小时前
查找算法「Java数据结构与算法学习笔记7」
数据结构·算法
宝贝儿好1 小时前
【强化学习】第十章:连续动作空间强化学习:随机高斯策略、DPG算法
人工智能·python·深度学习·算法·机器人