python十进制转换其他进制直到输入q结束,python二进制转换,python将十进制转为二进制,题目描述:输入一个整...

该博客介绍了如何使用Python来计算一个整数(包括负数的补码表示)在二进制表示中1的个数。提供了两种方法:一种是直接转换为二进制字符串并计数,另一种是利用位运算消去二进制末尾的1。这两种方法都有效地解决了问题。
摘要由CSDN通过智能技术生成

python二进制转换,python将十进制转为二进制,题目描述:输入一个整

题目描述:

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

分析:

python没有unsignedint类型

>>>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二进制转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值