Große zahlen addieren usw.?
Hi,
Bin ziemliche java noob und habe bisher nur mit int als zahlen Datentyp gearbeitet
Wie kann ich bei Java mit sehr großen arbeiten?
Ich möchte machen:
a+=500*(7^b)
a+=10*(10^c)
Und es dann ausgeben
C und b gehen über 50.
a kann aber nie mehr als 2^63 auf einmal addiert bekommen. Der Rest fällt einfach weg.
3 Antworten
Geht mit BigInteger. Die lassen sich aber leider in Java nicht mit den normalen Rechenoperatoren berechnen. Dein erstes Beispiel mit a+=500*(7^b) würde mit BigInteger etwa so aussehen:
BigInteger a = BigInteger.ZERO;
final BigInteger bi500 = BigInteger.valueOf(500);
final BigInteger bi7 = BigInteger.valueOf(7);
a = a.add(bi500.multiply(bi7.pow(b)));
Du musst natürlich nicht für jede Konstante einen eigenen BigInteger anlegen, aber das macht die Sache etwas übersichtlicher.
https://www.java-blog-buch.de/11-03-rechnen-mit-grossen-zahlen/
2 hoch 64
mal eine erklärung . brauchst du es noch größer musst du nach anderen Classen suchen die sowas erher als String nutzen und die brechenungen im hintergrund dafür erledigen .
bei python ist das gang und geben . weil das viel wissenschaftlicher aufgebaut ist in den bedürfnisen . bei java hab ich mich nie für interressiert .
BigInteger gibt es, schau mal in die Docs
hier brauchst du dann add(BigInteger)