0%

### 题目描述

Reverse bits of a given 32 bits unsigned integer.

### 例子

#### 例子 1

Input:`n = 00000010100101000001111010011100`
Output:`964176192 (00111001011110000010100101000000)`
Explanation: The input binary string `00000010100101000001111010011100` represents the unsigned integer `43261596`, so return `964176192` which its binary representation is `00111001011110000010100101000000`.

#### 例子 2

Input:`n = 11111111111111111111111111111101`
Output: `3221225471 (10111111111111111111111111111111)`
Explanation:The input binary string `11111111111111111111111111111101` represents the unsigned integer `4294967293`, so return `3221225471` which its binary representation is `10111111111111111111111111111111`.

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

### Note

• Note that in some languages such as Java, there is no unsigned integer type. In this case, both input and output will be given as a signed integer type. They should not affect your implementation, as the integer’s internal binary representation is the same, whether it is signed or unsigned.
• In Java, the compiler represents the signed integers using `2's complement notation`. Therefore, in Example 2 above, the input represents the signed integer `-3` and the output represents the signed integer `-1073741825`.

### Constraints

• The input must be a binary string of length `32`

### 解题思路

• 时间复杂度: `O(1)`
• 空间复杂度: `O(1)`

GitHub 代码同步地址： 190.ReverseBits.cpp

GitHub: Leetcode-C++-Solution