一、题目:
函数原型:
uint32_t reverseBits(uint32_t n)
解释:uint32是无符号int或short的别称,传入的参数是一个32位二进制串,返回值是该32位二进制串逆序后的十进制值
二、思路:实际上并不需要真的去逆序二进制串,只需要将逆序的的二进制串的十进制结果计算出来即可。那么只要每次取出原二进制串的一个低位,作为新二进制串的一个高位来计算。例如,取出原二进制串的最后一位,乘以2^31即可得到新二进制串的第一位;取出原二进制串的倒数第二位,乘以2^30即可得到新二进制串的第二位......如此以来,设置循环,共32次,每次将原二进制串按位与1即可得到低最位,然后右移原二进制串。将所有的结果相加即可得到新二进制串的十进制结果。
三、代码:
cppuint32_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; }
leetcode:190. 颠倒二进制位
南林yan2023-10-10 23:33
相关推荐
颜酱7 小时前
BFS 与并查集实战总结:从基础框架到刷题落地casual~7 小时前
第?个质数(埃氏筛算法)仰泳的熊猫8 小时前
题目2308:蓝桥杯2019年第十届省赛真题-旋转hssfscv8 小时前
力扣练习训练2(java)——二叉树的中序遍历、对称二叉树、二叉树的最大深度、买卖股票的最佳时机y = xⁿ9 小时前
【LeetCodehot100】二叉树大合集 T94:二叉树的中序遍历 T104:二叉树的最大深度 T226:翻转二叉树 T101:对称二叉树不想看见4049 小时前
Search a 2D Matrix II数组--力扣101算法题解笔记IronMurphy9 小时前
【算法二十六】108. 将有序数组转换为二叉搜索树 98. 验证二叉搜索树jaysee-sjc9 小时前
【练习十二】Java实现年会红包雨小游戏im_AMBER10 小时前
Leetcode 141 最长公共前缀 | 罗马数字转整数InfiniSynapse10 小时前
连上Snowflake就能取数:InfiniSynapse + Spider2-Snow实战企业数据分析