Reverse Bits(数的位倒置)

前端之家收集整理的这篇文章主要介绍了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>

猜你在找的设计模式相关文章