(LeetCode 面试经典 150 题) 190. 颠倒二进制位(位运算)
题目:190. 颠倒二进制位
思路:位运算,时间复杂度0(32)。
C++版本:
class Solution {
public:int reverseBits(int n) {int ans=0;int cnt=32;while(cnt>0){if(n%2==1){ans=ans*2+1;}else{ans*=2;}n>>=1;cnt--;}return ans;}
};
JAVA版本:
class Solution {public int reverseBits(int n) {int ans=0;int cnt=32;while(cnt>0){if(n%2==1){ans=ans*2+1;}else{ans*=2;}n>>=1;cnt--;}return ans;}
}
GO版本:
func reverseBits(n int) int {ans:=0cnt:=32for cnt>0 {if n%2==1 {ans=ans*2+1}else{ans*=2}n>>=1cnt--}return ans
}