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
Обернуть биты в 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;
}
};