[C++] Modulo vs. Substring?

01/22/2015 18:24 Masterakio1995#1
Hallo liebe Com,

mich würde interessieren was effizienter ist, wenn ich mit sehr großen Zahlen arbeite? Ich brauche die letzte Ziffer der Zahl. Und da würde es mich interessieren was schneller gehen würde?

Modulo:
zahl % 10

Oder mit Substring zu arbeiten?

Und wenn es schneller geht, ab welchem Zahlenbereich wäre das ca?
01/23/2015 01:47 Jeoni#2
Eine Library oder Klasse, die (beliebig) große Zahlen auf Basis von Strings implementiert, macht sicher irgendwas falsch. Mit Sicherheit noch falscher wird's nur, wenn auch noch das dezimale Zahlensystem für den String benutzt wird :D
Wie auch immer. Wenn die Zahl als bereits als dezimaler String vorliegt, kannste da einfach den letzten Character rausnehmen und hast das, was du brauchst (um den Ascii Char wieder in die entsprechende Zahl zu konvertieren, einfach das Zeichen '0' abziehen). Da würde die Modulo-Rechnung keinen Sinn machen.
Liegt die Zahl, wie in vielen Implementationen von großen Zahlen, binär vor, ist vermutlich immer die Modulo-Operation der Konvertierung in einen Dezimalstring (mit anschließender Extraktion des letzten Characters) vorzuziehen, da letztere intern vermutlich mehr als nur eine Modulo-Operation ausführt und daher aufwendiger ist.
Hoffe, dass das hilft ;)
Mit freundlichen Grüßen
Jeoni