Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse
Skrevet

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

Skrevet (endret)

Hva faen? - Hadde ikke jeg postet et ganske langt innlegg i denne tråden?

 

Har de oppgradert litt for mye når forumet var nede i går (ellernoe)? .. heh

Endret av søppel
  • 2 uker senere...
Skrevet
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.)

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