Irgendwie muss sich ja eine 128x128 oder 64x64 Operation mit 32-bit-MULs machen lassen.
Natürlich, eigentlich ist es wie schriftlich rechnen im 4294967296-er System:
Addieren 128Bit: ADD, ADC, ADC, ADC
Subtrahieren: SUB, SBB, SBB, SBB
Multiplizieren: Nach der Methode:
Code:
(a1+b1+c1+d1) * (a2+b2+c2+d2) = a1a2 + a1b2 + a1c2 + a1d2 + b1a2 + ... + d1d2
, wobei man die Stellenverschiebung berücksichtigen kann. Ergebnis ist dann ein 256-Bit-Integer.
Dividieren: Lässt sich ebenfalls wie das schriftliche Dividieren impklementieren.
Ich habe mir seinerzeit (in den 80-ern) so etwas für 32-Bit-Arithmetik gemacht. im Prinzip macht es keinen Unterschied zu jetzt.