Gast
#3880702
Einen guten Tag an das Forum Wie der Titel sagt suche ich einen Algorithmus mit dem ich möglichst schnell Kubikwurzeln berechnen kann. Als Prozessor soll ein Atmega 328 oder vergleichbares mit Hardware-Multiplier verwendet und in Assembler programmiert werden. Gegeben sind positive Ganzzahlen mit 32 Bit Länge, aufgeteilt in 4 Register zu 8 Bit. Das Ergebnis soll auch wieder eine Ganzzahl sein und ein Flag angeben ob die Wurzel aufgeht oder ein Rest übrig blieb. Mein bisheriger Ansatz ist die Sukzessive Approximation. Ich setze probeweise Bit 10 und multipliziere die Zahl zweimal mit sich selbst damit ich die dritte potenz habe. Dann vergleich ich mit der Zahl von der die Wurzel gezogen werden soll. Ist mein Zwischenergebnis zu groß lösche ich Bit 10 und setze Bit 9, ist es zu klein setze ich Bit 10 und 9. Das ganze fortgesetzt bis Bit 1. Wie ihr an meiner Sprache seht5 habe ich Programmieren nicht formell gelernt sondern arbeite mich mehr experimentell in das Thema ein. Habt ihr Vorschläge für einen effizienteren Algorithmus oder leichtverständliche Quellen im Internet wo ich mich weiter einlesen kann?