# [476. Number Complement](https://leetcode.com/problems/number-complement/) ## 题目 Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation. **Note:** 1. The given integer is guaranteed to fit within the range of a 32-bit signed integer. 2. You could assume no leading zero bit in the integer’s binary representation. **Example 1:** Input: 5 Output: 2 Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2. **Example 2:** Input: 1 Output: 0 Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0. ## 题目大意 给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。 注意: 给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。 ## 解题思路 - 求一个正数的补数,补数的定义是对该数的二进制表示取反。当前不能改变符号位。按照题意构造相应的 mask 再取反即可。