Saya membutuhkan cara cepat untuk menghitung jumlah bit dalam integer dengan python. Solusi saya saat ini adalah
bin(n).count("1")
tetapi saya bertanya-tanya apakah ada cara yang lebih cepat untuk melakukan ini?
PS: (Saya mewakili array biner 2D besar sebagai satu daftar angka dan melakukan operasi bitwise, dan itu membawa waktu turun dari jam ke menit. Dan sekarang saya ingin membuang menit ekstra itu.
Edit: 1. harus di python 2.7 atau 2.6
dan mengoptimalkan angka kecil tidak terlalu menjadi masalah karena itu tidak akan menjadi hambatan yang jelas, tetapi saya memiliki angka dengan 10.000 + bit di beberapa tempat
misalnya ini adalah kasus 2000 bit:
12448057941136394342297748548545082997815840357634948550739612798732309975923280685245876950055614362283769710705811182976142803324242407017104841062064840113262840137625582646683068904149296501029754654149991842951570880471230098259905004533869130509989042199261339990315125973721454059973605358766253998615919997174542922163484086066438120268185904663422979603026066685824578356173882166747093246377302371176167843247359636030248569148734824287739046916641832890744168385253915508446422276378715722482359321205673933317512861336054835392844676749610712462818600179225635467147870208L
int
? Bukankah itu memiliki metode sendiri untuk menghitung ini?
int.bit_length
seharusnya jawabannya, dan bukan yang diterima di bawah.