Gcc + AVR -> Schnelleres Teilen mit z.B. 32/64 als mit 33/65 ?

Gast #1855770
Lesenswert?

Hallo,

bei machen Code-Beispielen für den AVR sehe ich das mache versuchen
immter durch 2er Potenzen zu teilen (falls möglich).

Bsp.
1
 int a;
2
 //....
3
 a /= 32; // Verkleinern

und nicht 'gerade' Werte
1
 int a;
2
 //....
3
 a /= 30; // Verkleinern

Ist die Division mit 2er Potenzen allgemein schneller,
irgendwie anders vorteilhafter?

Danke
Jens
#1855774
Lesenswert?

Jens M. schrieb:

> Ist die Division mit 2er Potenzen allgemein schneller,
> irgendwie anders vorteilhafter?

Du bist das 10-er System gewohnt.
Dein Rechner arbeitet aber im 2-er System

So wie du einfach durch 10 dividieren kannst, indem du einfach die 
letzte Stelle unter den Tisch fallen lässt und alles andere eine Stelle 
nach rechts rückst, so kann ein Rechner einfach durch 2 dividieren, 
indem er die letzte Stelle unter den Tisch fallen lässt und alles andere 
eine Stelle nach rechts rückt.

Was für dich im 10er System die Reihe 10, 100, 1000, 10000, ... ist
(durch die man alle einfach dividieren kann), ist für einen Computer die 
Reihe 1, 2, 4, 8, 16, 32, 64, ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren