Wir wissen, dass der Maximalwert der Ganzzahl 2^31 - 1 beträgt und der Maximalwert von Long 2^63 - 1 beträgt
Dies ist wahr, ob es sich um eine 32-Bit- oder eine 64-Bit-Maschine handelt
Wenn wir eine Zahl mehr als der Maximalwert der Ganzzahl betreiben möchten, werden wir im Allgemeinen lange Zeit verwenden, um sie durchzuführen.
Aber was ist, wenn wir auf eine Zahl stoßen, die größer als der Maximalwert von lang ist?
Biginteger
Diese Situation wird immer noch auftreten. Java bietet eine BiginTeger -Klasse für den Betrieb extrem großer Zahlen. Wenn Sie es verwenden, müssen Sie ein BiginTeger -Objekt instanziieren und seine Betriebsmethode für die Addition und Subtraktion aufrufen.
Hier ist ein Beispiel zu veranschaulichen
Operation UUID
Wir wissen, dass anroid_id häufig in Android -Geräten verwendet wird, um die Einzigartigkeit des Geräts darzustellen
Im Allgemeinen wird der folgende Code aufgerufen, um nach der Installation der App zum ersten Mal eine Geräteummer zu generieren.
String private_id = settings.secure.getString (getContext (). GetContentresolver (), setts.secure.android_id);
Anschließend werden Zeichenfolgen im Dateisystem oder Datenbank über Persistenz gespeichert, und Indikatoren wie tägliche aktive Benutzer können basierend darauf identifiziert werden.
Sein Wert ist normalerweise eine hexadezimale Zahl, zum Beispiel
AF84C9117B6C98D2
Konvertieren es in Dezimal
12647454730485537000
Dies hat den Bereich des langen Maximalwerts 9223372036854776000 überschritten
Dann möchten wir es einfach basierend auf dem ursprünglichen Android_ID verschlüsseln, z. B. das Hinzufügen einer zufälligen Zahl zum Aufstieg.
String private_id = Settings.secure.getString (getContext (). GetContentresolver (), setts.secure.android_id); BigInteger Androidid = new BiginTeGerger (private_id, 16); random randomy random = new random (); biginte -result = androidIdd. hex = result.toString ();