- 题目描述
- 知识点及思路
- 总结
一.题目描述
简述:求一个数的二进制并求反
二.知识点及思路
知识点:移位;与或运算
思路:①(n&temp)>>i保证每次将原位置位移动至最低位②temp<<1保证与指定位做运算操作③value<<1保证了最低位移动至最高位④ value=(value<<1)|((n&temp)>>i)相当于位求和运算
代码如下:
class Solution {
public:
uint32_t reverseBits(uint32_t n)
{
uint32_t value = 0;
uint32_t temp=1;
for (uint32_t i = 0; i < 32; ++i)
{
value=(value<<1)|((n&temp)>>i);
temp=temp<<1;
}
return value;
}
};
三.总结
I.移位操作细节需多积累II.让我们一同努力,明天会更好!