[LeetCode] Reverse Bits
2015-04-07 15:03
316 查看
Reverse Bits
Reverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as00111001011110000010100101000000).
Follow up:
If this function is called many times, how would you optimize it?
解题思路:
通过移位来计算。下面是代码:
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t result=0;
int size = sizeof(uint32_t)*8;
for(int i=0; i<size; i++){
result = result << 1;
result += n%2;
n=n>>1;
}
return result;
}
};注意到,倘若n是一个很小的数,根本就不需要循环size位,若n右移一定位后为0,便可以跳出循环。result再左移剩下的位数即可。下面是优化后的代码:
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t result=0;
int size = sizeof(uint32_t)*8;
int i=0; //已经移动的位数
while(n!=0){
result = result << 1;
result += n%2;
n=n>>1;
i++;
}
result <<= size - i;
return result;
}
};
Reverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as00111001011110000010100101000000).
Follow up:
If this function is called many times, how would you optimize it?
解题思路:
通过移位来计算。下面是代码:
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t result=0;
int size = sizeof(uint32_t)*8;
for(int i=0; i<size; i++){
result = result << 1;
result += n%2;
n=n>>1;
}
return result;
}
};注意到,倘若n是一个很小的数,根本就不需要循环size位,若n右移一定位后为0,便可以跳出循环。result再左移剩下的位数即可。下面是优化后的代码:
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t result=0;
int size = sizeof(uint32_t)*8;
int i=0; //已经移动的位数
while(n!=0){
result = result << 1;
result += n%2;
n=n>>1;
i++;
}
result <<= size - i;
return result;
}
};
相关文章推荐
- LeetCode(47)-Reverse Bits
- leetcode 190 Reverse Bits
- Leetcode-Reverse Bits
- [LeetCode]Reverse Bits
- 【LeetCode】Reverse Bits
- LeetCode(47)-Reverse Bits
- 【LEETCODE】190-Reverse Bits
- leetcode之Number of 1 Bits,Reverse Bits,Rotate Array
- Leetcode: Reverse Bits
- leetcode 190 Reverse Bits
- leetcode190-Reverse Bits
- leetcode 190 Reverse Bits
- LeetCode 190 Reverse Bits
- LeetCode190——Reverse Bits
- leetcode : reverse Bits
- 【leetcode 190 Reverse Bits 】
- [LeetCode] Reverse Bits
- Leetcode_190_Reverse Bits
- leetcode-Reverse Bits-190
- [LeetCode 190]Reverse Bits