190. Reverse Bits

 

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

 

190. Обращение битов

 

Обернуть биты в 32-битовом беззнаковом целом числе.

Например, число 43261596 в двоичной системе представляется как

00000010100101000001111010011100

вернет 964176192, что в двоичной системе представляется как

00111001011110000010100101000000

 

class Solution {

public:

  uint32_t reverseBits(uint32_t n) {

       

  }

};

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Обращение битов можно совершить в одном цикле, совершив в точности 32 итерации.

 

Реализация алгоритма

 

class Solution

{

public:

  uint32_t reverseBits(uint32_t n)

  {

    uint32_t res = 0;

    for(int i = 0; i < 32; i++)

    {

      res = 2 * res + (n % 2);

      n /= 2;

    }

    return res;

  }

};