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[Bearbeiten]

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)