1. 题目 给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。 2. 解题 先求出该数的2进制有多少位然后分别每位与1进行异或操作 class Solution { public:int findComplement(int num) {int n = 1, num_copy = num;while(num_copy/2){++n;num_copy /= 2;}while(n){num ^= (1<<n-1);n--;}return num;} };