标签:
题目描述:
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?
思路:
主要考察位运算
1.result=0,result=result + 将数字和1做位与运算,对数字不停做位右移操作,直至数字为0;
2.将32位数字补全
uint32_t reverseBits(uint32_t n) { uint32_t result; int num = 0; while(n){ result = result *2 + (uint32_t)(n&1); n = n>>1; num++; } while(num<32){ result = result<<1; num++; } return result; }
标签:
原文地址:http://www.cnblogs.com/xiamaogeng/p/4350824.html