Leetcode 190. Reverse Bits
2018-09-04 本文已影响1人
SnailTyan
文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
1. Description
Reverse Bits2. Solution
- Version 1
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
int a[32] = {0};
unsigned int result = 0;
for(int i = 0; i < 32; i++) {
a[i] = n & 1;
n >>= 1;
}
unsigned int m = 1;
for(int i = 31; i >= 0; i--) {
result += a[i] * m;
m <<= 1;
}
return result;
}
};
- Version 2
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t x = 2147483648;
uint32_t result = 0;
while(n) {
int temp = n & 1;
result += temp * x;
n >>= 1;
x >>= 1;
}
return result;
}
};
- Version 3
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t result = 0;
for(int i = 0; i < 32; i++) {
result <<= 1;
result |= (n & 1);
n >>= 1;
}
return result;
}
};
- Version 4
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t result = 0;
for(int i = 0; i < 32; i++) {
result <<= 1;
if(n & 1) {
result++;
}
n >>= 1;
}
return result;
}
};