1 #define _for(i,a,b) for(int i = (a);i < (b);i ++) 2 class Solution 3 { 4 public: 5 int bitwiseComplement(int N) 6 { 7 if(N==0) 8 return 1; 9 string s;10 while(N)11 {12 s+= N%2+'0';13 N/=2;14 }15 reverse(s.begin(),s.end());16 17 _for(i,0,s.size())18 {19 if(s[i]=='0')20 {21 s[i] = '1';22 }23 else24 s[i] = '0';25 }26 27 int rnt = 0;28 for(int i = 0 ;i < s.size();i ++)29 {30 rnt += (s[i]-'0')*pow(2,s.size()-i-1);31 // cout << rnt << endl;32 }33 return rnt;34 }35 };