数字的补数--取反
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。示例 1:输入: 5输出: 2解释: 5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。示例 2:输入: 1输出: 0解释: 1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。来源:力扣(LeetCode)# -*- coding: utf-8 -*-#!/usr/bin/env
·
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。
示例 1:
输入: 5
输出: 2
解释: 5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。
示例 2:输入: 1
输出: 0
解释: 1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。来源:力扣(LeetCode)
# -*- coding: utf-8 -*-
#!/usr/bin/env python
"""
@author: WowlNAN
@github: https://github.com/WowlNAN
@blog: https://blog.csdn.net/qq_21264377
"""
class Solution:
def findComplement(self, num: int) -> int:
s = bin(num)
a = s[:2]
for i in range(2, len(s)):
digit=1^(int(s[i]))
a+=str(digit)
return int(a, 2)
这里使用python内置函数bin直接转为为 "0b****"的二进制字符。手写函数也很方便,除2取余数,再取商重复,拼接起来是就是二进制数。
更多推荐



所有评论(0)