Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Note:
- The given integer is guaranteed to fit within the range of a 32-bit signed integer.
- You could assume no leading zero bit in the integer’s binary representation.
例子:5(101)-> 2(010) 1(1)-> 0(0)
题目的要求很清楚,就是将数字的二进制按位取反,然后返回新的数。代码很简单,这里不再赘述:
class Solution {
public:
int findComplement(int num) {
int result = 0;
int exp = 0;
while (num) {
int temp = !(num & 1);
result += (pow(2, exp) * temp);
exp += 1;
num >>= 1;
}
return result;
}
};
本文介绍了一种简单的方法来实现数字的二进制补数转换。通过按位取反操作,可以快速得到输入整数的补数表示,并提供了一个C++示例代码。

1819

被折叠的 条评论
为什么被折叠?



