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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.