LeetCode上reverse bits的C++解法

来源:互联网 发布:淘宝详情页尺寸 编辑:程序博客网 时间:2024/06/03 18:01

题目如下:

Reverse bits of a given 32 bits unsigned integer.

For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).

题目思路还是很简单的,我们将10进制数转为2进制数,是不断的除以2取余数,然后把余数倒着写,就是2进制数,而这次,我们只需用10进制数不断除以2取余,将余数正着写即可,需要注意不满32位,要补零。代码如下

class Solution {public:    uint32_t reverseBits(uint32_t n) {        uint32_t temp = 0;        for(int i = 0;i < 32;i++){            temp = temp*2 + n%2;            n = n/2;        }        return temp;    }};


0 0
原创粉丝点击