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二进制转换的主要内容,如果未能解决你的问题,请参考以下文章

Python进制之间的转换

Python中进制转换函数的使用

python转换为二进制

python3字符串与二进制互相转换

python中不同进制转换函数

python进制转换