J'ai besoin d'un moyen rapide de compter le nombre de bits dans un entier en python. Ma solution actuelle est
bin(n).count("1")
mais je me demande s'il existe un moyen plus rapide de faire cela?
PS: (je représente un grand tableau binaire 2D comme une liste unique de nombres et j'effectue des opérations au niveau du bit, ce qui réduit le temps d'heures en minutes. Et maintenant, je voudrais me débarrasser de ces minutes supplémentaires.
Edit: 1. il doit être en python 2.7 ou 2.6
et l'optimisation pour les petits nombres n'a pas beaucoup d'importance car ce ne serait pas un goulot d'étranglement clair, mais j'ai des nombres avec plus de 10000 bits à certains endroits
par exemple c'est un cas de 2000 bits:
12448057941136394342297748548545082997815840357634948550739612798732309975923280685245876950055614362283769710705811182976142803324242407017104841062064840113262840137625582646683068904149296501029754654149991842951570880471230098259905004533869130509989042199261339990315125973721454059973605358766253998615919997174542922163484086066438120268185904663422979603026066685824578356173882166747093246377302371176167843247359636030248569148734824287739046916641832890744168385253915508446422276378715722482359321205673933317512861336054835392844676749610712462818600179225635467147870208L
int
? Cela n'a-t-il pas sa propre méthode de calcul?
int.bit_length
devrait être la réponse, et non celle acceptée ci-dessous.