Seid gegrüßt!
Da ich gerade ein Programm schreibe, in dem ich mit größeren Zahlen hantieren muss, komme ich mit dem herkömmlichen 0 bis 2^32-1 -Zahlenbereich meines Computers nicht aus. Auf (unsigned long long) möchte ich eigentlich verzichten, was mich auf die Idee kommen ließ, einfach die mathematischen Operationen auf mehreren unsignd ints (jeweils 32 Bit) durchzuführen.
Addition und Subtraktion ist da recht einfach. Hier habe ich die Addition und die Subtraktion erst auf das eine Wort durchgefürt und im Fall eines Überlaufs auch auf das andere.
Was ein bisschen komplizierter ist, ist die Multiplikation und die Division.
Um ein stark vereinfachtes Beispiel zu geben, stelle ich das mal in form von 4-Bit Words dar:
Word#1: 0001
Word#2: 0000 (Dezimal 16)
Word#1: 0000
Word#2: 0011 (Dezimal 3)
Sicher ginge es, jetzt einfach so oft 3 zu subtrahieren, bis ein rest überig bleibt, der < 3 ist, aber ich erhoffe mir von der Frage hier, dass es einen schnelleren Weg gibt.
Kann mir da jemand helfen?
lg, speedo
Da ich gerade ein Programm schreibe, in dem ich mit größeren Zahlen hantieren muss, komme ich mit dem herkömmlichen 0 bis 2^32-1 -Zahlenbereich meines Computers nicht aus. Auf (unsigned long long) möchte ich eigentlich verzichten, was mich auf die Idee kommen ließ, einfach die mathematischen Operationen auf mehreren unsignd ints (jeweils 32 Bit) durchzuführen.
Addition und Subtraktion ist da recht einfach. Hier habe ich die Addition und die Subtraktion erst auf das eine Wort durchgefürt und im Fall eines Überlaufs auch auf das andere.
Was ein bisschen komplizierter ist, ist die Multiplikation und die Division.
Um ein stark vereinfachtes Beispiel zu geben, stelle ich das mal in form von 4-Bit Words dar:
Word#1: 0001
Word#2: 0000 (Dezimal 16)
Word#1: 0000
Word#2: 0011 (Dezimal 3)
Sicher ginge es, jetzt einfach so oft 3 zu subtrahieren, bis ein rest überig bleibt, der < 3 ist, aber ich erhoffe mir von der Frage hier, dass es einen schnelleren Weg gibt.
Kann mir da jemand helfen?
lg, speedo