Autor Thema: Division ohne div  (Gelesen 5692 mal)

[MM]

  • Beiträge: 130
    • Profil anzeigen
    • www.mmcoding.eu
Gespeichert
« am: 01. April 2006, 02:41 »
Hallo. Ich möchte eine 64-Bit Division mit 32-Bit Registern realisieren (oder allgemein für Datentypen >32-Bit). Mit Addition/Subtraktion ist das ja kein Problem mit zB dem ADC Befehl, jedoch wie kann man das mit der Division bzw Multiplikation lösen? Man stelle sich einfach mal die folgende Rechnung vor:
0x10 0000 0000 / 0x02 0000 0000
Das ist mit div nicht zu lösen. Aber es gibt ja soweit ich weiß einen Algorithmus mit dem man die Multiplikation/Division recht effizient durchführen kann (noch aus der Zeit als es keine dib/mul Befehle gab). Hat den zufällig jemand von euch grad zur Hand?

MM

GhostCoder

  • Beiträge: 187
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 01. April 2006, 08:54 »
Hi,

ne Lösung dafür habe ich jetzt zwar nicht parat, aber guck doch mal nach __divdi3 (Division zweier long long`s) bei Google.

Gruß
A man, a legend!

[MM]

  • Beiträge: 130
    • Profil anzeigen
    • www.mmcoding.eu
Gespeichert
« Antwort #2 am: 01. April 2006, 23:02 »
Also die FPU scheiden aus unterschiedlichen Gründen aus (ich will keine Fließkommazahlen dividieren und außerdem sind auch da die Datentypen auf max. 80Bit beschränkt). Aber ich habe mal diese nette Seite gefunden:
http://www.bearcave.com/software/divide.htm
Hab den Algorithmus zwar noch nicht ganz verstanden, sieht aber vielversprechend aus...

MM

 

Einloggen