Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python二进制求和_Python_Performance_Binary_Sum_Sage - Fatal编程技术网

Python二进制求和

Python二进制求和,python,performance,binary,sum,sage,Python,Performance,Binary,Sum,Sage,在查看一些SageMath代码时,我遇到了以下代码片段: bits = n - sum(n.digits(2)) 因为我不知道什么是数字,所以我继续尝试使用n=5: n = 5 print(n.digits(2)) [1, 0, 1] 如果我运行完整的行,结果是(相当明显) 我如何在纯python中实现这一点?转换为字符串和返回的速度非常慢,所以我想避免这些。有没有一个快速的解决方案?如果您想了解非零位的数量: bin(5).count("1") 您正在查找一个数字中的位数到1?一个数字的

在查看一些SageMath代码时,我遇到了以下代码片段:

bits = n - sum(n.digits(2))
因为我不知道什么是
数字
,所以我继续尝试使用
n=5

n = 5
print(n.digits(2))
[1, 0, 1]
如果我运行完整的行,结果是(相当明显)


我如何在纯python中实现这一点?转换为字符串和返回的速度非常慢,所以我想避免这些。有没有一个快速的解决方案?

如果您想了解非零位的数量:

bin(5).count("1")

您正在查找一个数字中的位数到1?一个数字的所有单个位数之和(因此,数字位表示中的位数为1)。e、 g:5->101->1+0+1->2如果删除创建新列表的
[2://code>,我认为它的性能会更好。
bin(5).count("1")