题目:476. 数字的补数
思路:先用数组v保存num的二进制新式,然后再通过与1进行“异或^”来进行取反操作即可。
class Solution {
public:
int findComplement(int num) {
vector<int> v;
while(num){
v.push_back(num&1);
num>>=1;
}
int sum=0;
for(int i=v.size()-1;i>=0;i--){
sum=sum*2+v[i]^1;
}
return sum;
}
};