Kita tahu bahwa nilai maksimum integer adalah 2^31 - 1, dan nilai maksimum panjang adalah 2^63 - 1
Ini benar apakah itu mesin 32-bit atau 64-bit
Secara umum, ketika kami ingin mengoperasikan angka yang lebih besar dari nilai maksimum integer, kami akan menggunakan lama untuk melakukannya.
Tetapi bagaimana jika kita menemukan angka yang lebih besar dari nilai maksimum panjang?
Biginteger
Situasi ini masih akan terjadi. Java menyediakan kelas BigInteger untuk mengoperasikan jumlah yang sangat besar. Saat menggunakannya, Anda perlu membuat instantiate objek BigInteger, panggil metode operasinya untuk penambahan dan pengurangan.
Berikut adalah contoh untuk diilustrasikan
Operasi UUID
Kita tahu bahwa anroid_id sering digunakan di perangkat Android untuk mewakili keunikan perangkat
Secara umum, kode berikut akan dipanggil untuk menghasilkan nomor perangkat untuk pertama kalinya setelah menginstal aplikasi.
String private_id = settings.secure.getString (getContext (). GetContentResolver (), settings.secure.android_id);
Kemudian string disimpan dalam sistem file atau database melalui kegigihan, dan indikator seperti pengguna aktif harian dapat diidentifikasi berdasarkan ini.
Nilainya biasanya angka heksadesimal, misalnya
AF84C9117B6C98D2
Mengubahnya menjadi desimal
12647454730485537000
Ini telah melebihi kisaran nilai maksimum panjang 9223372036854776000
Kemudian kami hanya ingin mengenkripsi berdasarkan Android_ID asli, seperti menambahkan nomor acak untuk naik.
String private_id = settings.secure.getString (getContext (). GetContentResolver (), settings.secure.android_id); biginteger androidid = BigInteger baru (private_id, 16); random = random baru (); Hasil BigInteger = androidid.Add (Bigininteger baru); String. hex = result.toString ();