Reverse Bits(数的位倒置)

Reverse bits of a given 32 bits unsigned integer.

For example,given input 43261596 (represented in binary as00000010100101000001111010011100),return 964176192 (represented in binary as00111001011110000010100101000000).

Follow up:
If this function is called many times,how would you optimize it?

Related problem:Reverse Integer

Method:

<span style="font-size:18px;">uint32_t reverseBits(uint32_t n) {
    int num[32];
    int i = 0;
    uint32_t temp = 0;
    for(; i < 32; i++)//记录到数组
    {
        if((1<<i)&n)
        {
            num[i] = 1;
        }
        else
        {
            num[i] = 0;
        }
    }
    for(i = 0; i<32; i++)//使用位偏移写入到临时数temp中
    {
        if(num[i])
        {
            temp = (1<<(31-i))|temp;
        }
    }
    return n = temp;
}</span>

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...