python二进制转换
Posted 竹径风声
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python二进制转换相关的知识,希望对你有一定的参考价值。
题目描述:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
分析:
python没有unsigned int类型
>>> print ("%x" % 0xFFFFFFFF)
ffffffff
>>> print ("%x" % -10)
-a
>>> print ("%x" % -0xFFFFFFFF)
-ffffffff
解答:
【方法一】
class Solution:
def NumberOf1(self, n):
# write code here
if n==0:
return 0
if n<0:
n=n&0xffffffff #这里把负数变成整数
return bin(n)[2:].count("1")
【方法二】
class Solution:
def NumberOf1(self, n):
# write code here
if n==0:
return 0
c=0
if n<0:
n=n&0xffffffff
while n:
n=n&(n-1) #n & (n - 1)消去n最后一位的1.消了几次就是n中有几个1.
c+=1
return c
以上是关于python二进制转换的主要内容,如果未能解决你的问题,请参考以下文章