一、题目:
函数原型:
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
相关推荐
倒头就睡的小比特4 天前
算法竞赛C++常用的STL小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升猎头南楼4 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师旖旎夜光4 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解wzdark4 天前
大规模并行计算中的负载均衡算法研究4Because_of_Her14 天前
并查集-听课笔记码流子4 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环another heaven4 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】wzdark4 天前
从算法设计模式看编程思维的抽象能力42601_962218614 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点