Sabemos que o valor máximo do número inteiro é 2^31 - 1, e o valor máximo de longo é 2^63 - 1
Isso é verdade se é uma máquina de 32 bits ou 64 bits
De um modo geral, quando queremos operar um número maior que o valor máximo do número inteiro, usaremos muito tempo para executá -lo.
Mas e se encontrarmos um número maior que o valor máximo de longa?
Biginteger
Esta situação ainda ocorrerá. O Java fornece uma classe Biginteger para operar números extremamente grandes. Ao usá -lo, você precisa instanciar um objeto Biginteger, chame seu método de operação para adição e subtração.
Aqui está um exemplo para ilustrar
Operação uuid
Sabemos que o ANROID_ID é frequentemente usado em dispositivos Android para representar a singularidade do dispositivo
Geralmente, o código a seguir será chamado para gerar um número de dispositivo pela primeira vez após a instalação do aplicativo.
String private_id = setings.secure.getString (getContext (). GetContentResolver (), Settings.secure.android_id);
Em seguida, as strings são armazenadas no sistema de arquivos ou no banco de dados por meio da persistência, e os indicadores como usuários ativos diários podem ser identificados com base nisso.
Seu valor é geralmente um número hexadecimal, por exemplo
AF84C9117B6C98D2
Convertê -lo em decimal é
12647454730485537000
Isso excedeu o intervalo de valor máximo longo 9223372036854776000
Então, queremos simplesmente criptografá -lo com base no Android_id original, como adicionar um número aleatório para subir.
String private_id = Settings.secure.getString (getContext (). GetContentResolver (), Settings.secure.android_id); BigInteger Androidid = new BigInteger (private_id, 16); Randoman Random = novo () Random () BigIntegerOf = Androidid.ad (Biginteger (BigINTERGER (BIGNINTEGER (BIGNINTEGER); hex = resultado.toString ();