# 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"); } ```