Java BigInteger

Java Biginteger



Java menawarkan kelas BigInteger khusus untuk mengelola angka yang sangat besar yang lebih besar dari angka 64-bit. Ukuran nilai integer yang dapat ditangani oleh kelas ini hanya dibatasi oleh memori yang dialokasikan dari JVM. Kelas BigInteger, yang mewarisi Number. mengimplementasikan antarmuka Sebanding. Ini memberikan padanan untuk setiap operator bilangan bulat primitif Java serta setiap metode dari modul java.lang.math. Nilai tersimpan objek BigInteger tidak dapat dimodifikasi karena kekekalan kelas BigInteger.

Contoh 1:

Program berikut menyediakan cara untuk membuat BigInteger di java dan menerapkan operasi aritmatika ke nilai BigInteger yang disediakan.








Kami telah mengimpor kelas BigInteger dari paket java matematika di dalam program. Setelah itu, kita mendeklarasikan objek BigInteger “bigInt1” dan “bigInt2” dalam metode main() kelas java “BigIntegerExample.” Selanjutnya, kita menginisialisasi objek BigInteger dengan nilai numerik besar di dalam kelas BigInteger. Kami telah membuat objek lain dari kelas BigInteger untuk melakukan operasi aritmatika pada nilai integer besar yang ditentukan. Objek dinyatakan sebagai 'Perkalian' untuk mengalikan nilai BinInteger dan 'Pembagian' untuk membagi nilai BigInteger.



Kemudian, kami menetapkan 'bigInt1' bersama dengan metode multiply() dari BigInteger ke objek 'multiply', yang mengambil input 'bigInt2'. Juga, kita telah memanggil metode division(), yang mengambil parameter 'bigInt2' yang akan dibagi dengan 'bigInt1', dan mencetak hasilnya setelah dieksekusi.



Hasil operasi perkalian dan pembagian pada nilai BigInteger ditampilkan pada gambar keluaran berikut. Beginilah cara BigInteger dikonfigurasi di java dan digunakan untuk berbagai operasi.





Contoh 2:

Komputasi faktorial adalah ilustrasi yang baik dari bilangan bulat yang mendapatkan masukan yang sangat besar. BigInteger juga dapat digunakan untuk mendapatkan faktorial untuk nilai bilangan bulat yang lebih besar.




Kami telah membuat fungsi 'faktorial' dari kelas BigInteger, di mana objek 'num' bertipe int diteruskan sebagai argumen untuk mengembalikan faktorial dari nilai 'Num'. Di dalam fungsi 'faktorial', kami telah mendeklarasikan objek BigInteger 'max_fict' di mana nilai BigInteger '2' ditentukan. Setelah itu, kami menerapkan for-loop, yang akan mengiterasi dan mengalikan nilai “max_fict” dengan 4, 5, dan hingga nilai ke-n saat metode multiply() dipanggil. perkalian () itu sendiri disebut metode 'valueOf' lainnya, di mana objek 'i' dari for-loop disediakan. Pernyataan pengembalian akan memberikan faktorial yang lebih besar. Selanjutnya, kami telah menetapkan metode main() program. Kami menginisialisasi objek 'Num' dengan nilai dan mencetak faktorial dari 'Num' dari metode faktorial().

Nilai faktorial dari angka “40” memberikan nilai BigInteger sebagai berikut:

Contoh 3:

Fungsi bitCount() dari kelas BigInteger menghitung bit. Metode bitCount() menyediakan jumlah bit yang berupa dua komplemen pada BigInteger ini dan berbeda dengan bit tanda. Metode ini menampilkan bit yang disetel saat nilai BigInteger positif. Sebaliknya, jika BigInteger ditentukan dengan nilai negatif, metode ini mengembalikan jumlah bit reset.


Kami telah mendeklarasikan dua variabel, 'b1' dan 'b2' dari kelas tipe 'BigInteger.' Kami juga telah mendefinisikan dua variabel lagi, 'bilangan bulat1' dan 'bilangan bulat2', tipe primitif int. Mengikuti deklarasi, kami menginisialisasi 'b1' dengan nilai BigInteger positif dan 'b2' dengan nilai BigInteger negatif. Selanjutnya, kita telah menetapkan 'integer1' dan 'integer2' dengan metode bitCount() ke variabel BigInteger 'b1' dan 'b2.' Bit yang dihitung akan diperoleh dari metode bitCount() untuk nilai BigInteger yang ditentukan.

BigInteger positif menyediakan bit '2', dan nilai negatif BigInteger menghasilkan nilai bit '1'.

Contoh 4:

Nilai absolut dari data numerik berukuran besar di BigInteger dapat ditentukan dengan menggunakan metode abs() dari kelas BigInteger. Metode abs() mengembalikan nilai absolut BigInteger.


Kami memiliki kelas BigInteger, dari mana kami telah mendeklarasikan empat variabel: 'big1', 'big2', 'big3', dan 'big4'. Variabel 'big1' dan 'big2' masing-masing ditentukan dengan nilai positif dan negatif. Setelah itu, kami memanggil metode abs() dengan 'big1' dan 'big2' dalam variabel 'big3' dan 'big4'. Perhatikan bahwa metode abs() tidak mengambil nilai input apa pun tetapi dipanggil dengan variabel 'big1' dan 'big2'. Metode abs() mendapatkan nilai absolut untuk variabel BigInteger ini, dan hasilnya akan dicetak pada waktu kompilasi.

Nilai absolut dari nilai positif 432 dan negatif 432 sama karena metode abs() selalu mengembalikan nilai absolut positif.

Contoh 5:

Perbandingan nilai BigInteger dapat dicapai dengan menggunakan metode BigInteger compareTo() . BigInteger dibandingkan dengan BigInteger yang dimasukkan sebagai parameter di dalam metode compareTo() . Nilai kembalian dari metode compareTo() didasarkan pada nilai BigInteger. Ketika perbandingan nilai BigInteger sama, maka nol dikembalikan. Jika tidak, '1' dan '-1' dikembalikan dengan syarat bahwa nilai BigInteger lebih besar atau lebih kecil dari nilai BigInteger yang diteruskan sebagai argumen.


Kami memiliki deklarasi objek 'MyBigInt1' dan 'MyBigtInt2' dari kelas 'BigInteger.' Objek-objek ini kemudian ditentukan dengan nilai BigInteger yang sama. Setelah itu, kami membuat objek lain, 'comparevalue' di mana objek 'MyBigInt1' dipanggil dengan metode compareTo(), dan objek 'MyBigInt2' diteruskan sebagai argumen untuk membandingkan dengan objek 'MyBigInt2'. Selanjutnya, kita memiliki pernyataan if-else dimana kita telah memeriksa apakah hasil dari metode compareTo() sama dengan nilai “0” atau tidak.

Karena kedua objek BigInteger memiliki nilai yang sama, hasil compareTo() mengembalikan nol, seperti yang ditunjukkan pada gambar di bawah.

Contoh 6:

Metode BigInteger flipBit(index) juga dapat digunakan untuk membalik lokasi bit tertentu dalam BigInteger. Metode ini mengevaluasi (bigInt ^ (1<


Kami telah mendefinisikan dua variabel BigInteger, “B_val1” dan “B_val2.” Variabel “B_val1” diinisialisasi dengan kelas BigInteger, di mana nilainya ditentukan. Kemudian, kita telah menetapkan variabel “B_val2” dengan metode flipBit(), di mana operasi flipBit dilakukan pada variabel “B_value” dengan nilai indeks “2.”

Posisi indeks dari nilai BigInteger '9' dibalik dengan indeks '2', yang menampilkan nilai '13' pada output.

Kesimpulan

Kelas BigInteger sangat mudah digunakan dan sering digunakan dalam pemrograman kompetitif karena pustaka metodenya yang luas. BigInteger digunakan untuk perhitungan angka yang sangat panjang yang melampaui kapasitas semua tipe data primitif yang saat ini dapat diakses. Ini menyediakan berbagai metode untuk operasi aritmatika modular. Kami membuat BigInteger terlebih dahulu dan kemudian membahas beberapa metodenya.