dividieren ohne dividieren-operator
-
Ich hab eine Plattform auf der ich nicht dividieren kann. Addieren, subtrahieren und shiften geht.
Nun habe ich 2 unsigned 40 Bit Werte x und y die ich dividieren möchte.
Ich weiß, dass das Ergebnis von x/y maximal 8 Bit groß sein kann.Hat irgendwer eine Idee wie man hier am geschicktesten vorgeht?
-
da schau mal dorthin:
die disskutieren das mit bitverschiebung:
-
-
google mal mach 'shift an subtract algorithm'
btw, --> http://www.ee.ucla.edu/~ingrid/ee213a/lectures/division_presentV2.pdf
-
http://en.wikipedia.org/wiki/Division_(digital)
und falls du c=a/b quick&dirty haben willst (und es dir nicht auf geschwindigkeit ankommt), da du ja weisst dass c maximal 8 bit sind, mach ne schleife und subtrahiere b von a bis b>a.
-
Dividieren durch subtrahieren dauert mir zu lange (maximal 255 Schleifendurchläufe hier) und vor allem ist es sehr unterschiedlich schnell, dadurch kriege ich nur wieder Timing-Probleme.
Newton-Raphson benötigt eine Lookup-Table, dafür hab ich keinen Platz. Also bleibt wohl nur Restoring oder Non-Restoring Division. Mal schauen was davon ich effizienter implementieren kann.