Gå til innhold

Raskeste metode for å telle antall høye bit i byte


Anbefalte innlegg

Overskriften sier vel det meste.. Jeg er ute etter den raskeste metoden for å telle antallet høye bit i en byte.. Finnes det en smart metode jeg ikke kommer på i farten?

 

F.eks. 01100101 gir svaret 4.

 

En foreløpig idé er å ganske enkelt skifte byten i en eller annen retning, og telle antall enere som forsvinner ut, altså ca:

 

c=0;

for(int i = 0; i<8; i++) {

if((byten>>i)&0x01) c++;

}

 

Det kunne fungert med en oppslagstabell også, men når jeg senere skal benytte metoden på en 32 bit blir det litt vel plasskrevende..

Lenke til kommentar
Videoannonse
Annonse
Jeg vet ikke om den er raskere, men jeg vil tro det.

8993976[/snapback]

Ryddig kode iallfall... Får kanskje undersøke hvordan det håndteres i kompilatoren...

 

Glemte å nevne at jeg i første rekke er interessert i C-kode (da det skal inn på en mikrokontroller), men C++ er også interessant.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...