一、题目:
函数原型:
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
相关推荐
Young_Zn_Cu1 小时前
LeetCode刷题记录(持续更新中)天选之女wow1 小时前
【代码随想录算法训练营——Day31】贪心算法——56.合并区间、738.单调递增的数字、968.监控二叉树lixinnnn.1 小时前
贪心:火烧赤壁小小前端_我自坚强1 小时前
前端算法相关详解前端 贾公子2 小时前
《Vuejs设计与实现》第 5 章(非原始值响应式方案)下 Set 和 Map 的响应式代理WWZZ20253 小时前
ORB_SLAM2原理及代码解析:SetPose() 函数小马学嵌入式~4 小时前
堆排序原理与实现详解青岛少儿编程-王老师4 小时前
CCF编程能力等级认证GESP—C++6级—20250927一人の梅雨4 小时前
1688 拍立淘接口深度开发:从图像识别到供应链匹配的技术实现Miraitowa_cheems5 小时前
LeetCode算法日记 - Day 64: 岛屿的最大面积、被围绕的区域