Просматривая код SageMath, я наткнулся на следующий фрагмент:
bits = n - sum(n.digits(2))
Поскольку я понятия не имел, что сделал digits
, я попытался сделать это со значением n = 5
:
n = 5
print(n.digits(2))
[1, 0, 1]
И если я запускаю полную строку, результат (довольно очевидно)
n = 5
print(sum(n.digits(2)))
2
Как я мог добиться этого в чистом питоне? Преобразование в строки и обратно очень медленное, поэтому я бы хотел их избежать. Есть ли быстрое решение для этого?