Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

hvis man f.eks skal ha tak i en spesiell bit.

F.eks kan man sjekke om en bit er 1 eller 0 dermed få plass til 8 boolske variabler i en char. Ellers er det raskere å gange og dele med bitshifts. int i = j << 2; // raskere enn int i = j * 4; Man kan også bruke xor for å lage xor-kryptering osv.

Det er haugevis av flere bruksområder som jeg ikke orker å liste opp

Lenke til kommentar
  • 2 uker senere...
Ellers er det raskere å gange og dele med bitshifts. int i = j << 2; // raskere enn int i = j * 4; Man kan også bruke xor for å lage xor-kryptering osv.

Akkurat det nevnte tilfellet - ganging/deling med en konstant - vil garantert bli optimisert til et bitshift uansett, selv i C.

 

Hvis du mener *2, så skriv *2; alt annet er forvirrende. Hvis du derimot ikke har med en konstant å gjøre, så er det selvfølgelig bedre å skrive 1<<x enn expt(2,x).

 

(Begge gir 2^x, hvor x er et heltall, men den siste er omtrent tusen ganger raskere, bokstavlig talt. Ikke regn med optimisering av slikt; C-kompilatorere er ganske treige i knollen.)

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...