# Leetcode : 0190. Reverse Bits (Bits)
###### tags:`leetcode`
```
#include <bits/stdc++.h>
#include <iostream>
#include <bitset>
#include <vector>
#include <unordered_map>
using std::vector;
using std::unordered_map;
using namespace std;
class BaseVectorPrint {
public:
void BasePrint00(vector<int>& num) {
for (size_t i = 0; i < num.size(); ++i) {
cout << "[" <<num.at(i) << "]" << "; ";
}
cout << endl;
}
void BasePrint01(vector<int>& num) {
for (size_t i = 0; i < num.size(); ++i) {
cout << num[i] << "; ";
}
cout << endl;
}
void BasePrint02(vector<int>& num) {
for (const auto &item : num) {
cout << item << "; ";
}
cout << endl;
}
void TwoDimensionalPrint(vector<vector<int>> &num){
for (int i = 0; i < num.size(); i++)
{
for (int j = 0; j < num[i].size(); j++)
{
cout << "[" << num[i][j] << "]";
}
cout << endl;
}
}
};
class Solution01 {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t res = 0;
for (int i = 0; i < 32; ++i) {
if (n & 1 == 1) { //Bit = 1;
res = (res << 1) + 1;
} else { //Bit = 0;
res = res << 1;
}
n = n >> 1;
}
return res;
}
};
int main(void)
{
BaseVectorPrint printVector;
Solution01 runfunc;
vector<int> test01 = { 4, 5, 1, 8, 2 };
vector<int> test02 = { 1, 2, 3, 4 };
vector<int> test03 = { -1, 1, 0, -3, 3 };
vector<int> ans ;
uint32_t ansint ;
uint32_t inputnum = 15;
bitset<sizeof(inputnum) * 8> s2(inputnum);
cout << s2 << " = " << inputnum << endl;
ansint = runfunc.reverseBits(inputnum);
bitset<sizeof(ansint) * 8> s1(ansint);
cout << s1 << " = " << ansint << endl;
//printVector.BasePrint00(ans);
//printf("%d\n",input_Nums);
printf("test\n");
system("pause");
}
```