Diskussion:AVR Arithmetik

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Division 32 Bit durch 32 Bit

Ich habe den Algorithmus mal mit ein paar Zahlen getestet und festgestellt, dass dieser nicht unbedingt korrekt rechnet.

Bei einer Division sind ja verschiedene Fälle zu beachten: a: 1. Zahl größer als 2. Zahl -> scheint der einzige Fall zu sein in welchem der Algorithmus funktioniert.

b: 1. Zahl ist 0 -> Rest ist 2. Zahl -> mit 1. Zahl=0x00000000 und 2. Zahl=0xFFFFFFFF müsste das Ergebnis folglich 0x00000000 und Rest 0xFFFFFFFF lauten, es lautet aber 0x7FFFFFFF mit Rest 0x00000000.

-> mit 1. Zahl=0x00000001 und 2.=Zahl 0xFFFFFFFF müsste das Ergebnis folglich 0x00000000 und Rest 0xFFFFFFFF lauten, es lautet aber 0x80000000 mit Rest 0x00000000.

c: 1. Zahl ungleich 0, zweite Zahl gleich 0 (-> Division durch 0, wird nicht abgefangen!)

d: 1. Zahl gleich 2. Zahl -> mit 1. Zahl=0xFFFFFFFF und 2. Zahl=0xFFFFFFFF müsste das Ergebnis folglich 0x00000001 und Rest 0x00000000 lauten, es lautet aber 0x00000000 mit Rest 0x7FFFFFFE.

--EXS 07:22, 05. Dez. 2012 (CEST)

Es gibt da mindestens 3 Algorithmen, die für sich beanspruchen, einer 32-Bit Division durchzuführen. Welcher davon ist nicht korrekt? --Gjlayde 07:26, 5. Dez. 2012 (UTC)