Java BigInteger

Java Biginteger



Java menawarkan kelas BigInteger khas untuk menguruskan nombor yang sangat besar yang lebih besar daripada nombor 64-bit. Saiz nilai integer yang boleh dikendalikan oleh kelas ini hanya dikekang oleh memori JVM yang diperuntukkan. Kelas BigInteger, yang mewarisi Number.implements antara muka Sebanding. Ia memberikan persamaan untuk setiap pengendali integer primitif Java serta setiap kaedah daripada modul java.lang.math. Nilai tersimpan objek BigInteger tidak boleh diubah suai kerana ketidakbolehubah kelas BigInteger.

Contoh 1:

Program berikut menyediakan cara untuk mencipta BigInteger dalam java dan menggunakan operasi aritmetik pada nilai BigInteger yang disediakan.








Kami telah mengimport kelas BigInteger daripada pakej matematik java di dalam program. Selepas itu, kami mengisytiharkan objek BigInteger 'bigInt1' dan 'bigInt2' dalam kaedah main() kelas java 'BigIntegerExample.' Seterusnya, kami memulakan objek BigInteger dengan nilai angka yang besar dalam kelas BigInteger. Kami telah mencipta objek lain kelas BigInteger untuk melaksanakan operasi aritmetik pada nilai integer besar yang ditentukan. Objek diisytiharkan sebagai 'Pendaraban' untuk mendarab nilai BinInteger dan 'Bahagian' untuk membahagikan nilai BigInteger.



Kemudian, kami memberikan 'bigInt1' bersama-sama dengan kaedah multiply() BigInteger kepada objek 'multiply,' yang mengambil input 'bigInt2.' Juga, kami telah memanggil kaedah bahagian(), yang mengambil parameter 'bigInt2' yang akan dibahagikan dengan 'bigInt1,' dan mencetak keputusan selepas pelaksanaan.



Hasil operasi darab dan bahagi pada nilai BigInteger ditunjukkan dalam imej keluaran berikut. Ini adalah bagaimana BigInteger dikonfigurasikan dalam java dan digunakan untuk pelbagai operasi.





Contoh 2:

Pengiraan faktor ialah ilustrasi yang baik tentang integer yang mendapat input yang sangat besar. BigInteger juga boleh digunakan untuk mendapatkan faktorial untuk nilai integer yang lebih besar.




Kami telah mencipta fungsi 'faktorial' kelas BigInteger, di mana objek 'num' jenis int diluluskan sebagai hujah untuk mengembalikan faktorial bagi nilai 'Num.' Di dalam fungsi 'faktorial', kami telah mengisytiharkan objek BigInteger 'max_fict' di mana nilai BigInteger '2' ditentukan. Selepas itu, kami menggunakan gelung untuk, yang akan berulang dan kemudian mendarabkan nilai 'max_fict' dengan 4, 5 dan sehingga nilai ke-n apabila kaedah darab() digunakan. Darab() itu sendiri dipanggil kaedah 'valueOf' yang lain, di mana objek 'i' bagi gelung untuk disediakan. Penyata pulangan akan memberikan faktorial yang lebih besar. Seterusnya, kami telah menubuhkan kaedah main() program. Kami memulakan objek 'Num' dengan nilai dan mencetak faktorial 'Num' daripada kaedah faktorial().

Nilai faktor bagi nombor '40' memberikan nilai BigInteger seperti berikut:

Contoh 3:

Fungsi bitCount() kelas BigInteger mengira bit. Kaedah bitCount() menyediakan bilangan bit yang dalam bentuk dua pelengkap dalam BigInteger ini dan berbeza daripada bit tanda. Kaedah ini mengembalikan bit yang ditetapkan apabila nilai BigInteger adalah positif. Sebaliknya, jika BigInteger ditentukan dengan nilai negatif, kaedah ini mengembalikan bilangan bit set semula.


Kami telah mengisytiharkan dua pembolehubah, 'b1' dan 'b2' kelas jenis 'BigInteger.' Kami juga telah menentukan dua lagi pembolehubah, 'integer1' dan 'integer2,' jenis primitif int. Berikutan pengisytiharan itu, kami memulakan 'b1' dengan nilai BigInteger positif dan 'b2' dengan nilai BigInteger negatif. Seterusnya, kami telah menetapkan 'integer1' dan 'integer2' dengan kaedah bitCount() kepada pembolehubah BigInteger 'b1' dan 'b2.' Bit yang dikira akan diperoleh daripada kaedah bitCount() untuk nilai BigInteger yang ditentukan.

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

Contoh 4:

Nilai mutlak data berangka bersaiz besar dalam BigInteger boleh ditentukan dengan menggunakan kaedah abs() kelas BigInteger. Kaedah abs() mengembalikan nilai mutlak BigInteger.


Kami mempunyai kelas BigInteger, yang daripadanya kami telah mengisytiharkan empat pembolehubah: 'big1,' 'big2,' 'big3,' dan 'big4'. Pembolehubah 'big1' dan 'big2' masing-masing ditentukan dengan nilai positif dan negatif. Selepas itu, kami menggunakan kaedah abs() dengan 'big1' dan 'big2' dalam pembolehubah 'big3' dan 'big4'. Ambil perhatian bahawa kaedah abs() tidak mengambil sebarang nilai input tetapi dipanggil dengan pembolehubah 'big1' dan 'big2'. Kaedah abs() mendapat nilai mutlak untuk pembolehubah BigInteger ini, dan keputusan akan dicetak pada masa penyusunan.

Nilai mutlak nilai positif 432 dan negatif 432 adalah sama kerana kaedah abs() sentiasa mengembalikan nilai mutlak positif.

Contoh 5:

Perbandingan nilai BigInteger boleh dicapai menggunakan kaedah BigInteger compareTo(). BigInteger dibandingkan dengan BigInteger yang dimasukkan sebagai parameter dalam kaedah compareTo(). Nilai pulangan kaedah compareTo() adalah berdasarkan nilai BigInteger. Apabila perbandingan nilai BigInteger adalah sama, maka sifar dikembalikan. Jika tidak, '1' dan '-1' dikembalikan dengan syarat nilai BigInteger lebih besar daripada atau lebih kecil daripada nilai BigInteger yang diluluskan sebagai hujah.


Kami mempunyai objek 'MyBigInt1' dan 'MyBigtInt2' pengisytiharan kelas 'BigInteger.' Objek ini kemudiannya ditentukan dengan nilai BigInteger yang sama. Selepas itu, kami mencipta objek lain, 'comparevalue' di mana objek 'MyBigInt1' dipanggil dengan kaedah compareTo(), dan objek 'MyBigInt2' diluluskan sebagai hujah untuk dibandingkan dengan objek 'MyBigInt2'. Seterusnya, kami mempunyai pernyataan if-else di mana kami telah menyemak sama ada keputusan kaedah compareTo() adalah sama dengan nilai '0' atau tidak.

Oleh kerana kedua-dua objek BigInteger mempunyai nilai yang sama, hasil compareTo() mengembalikan sifar, seperti yang ditunjukkan dalam imej di bawah.

Contoh 6:

Kaedah flipBit(index) BigInteger juga boleh digunakan untuk membalikkan pada lokasi bit tertentu dalam BigInteger. Kaedah ini menilai (bigInt ^ (1<


Kami telah menentukan dua pembolehubah BigInteger, 'B_val1' dan 'B_val2.' Pembolehubah 'B_val1' dimulakan dengan kelas BigInteger, di mana nilai ditentukan. Kemudian, kami telah menetapkan pembolehubah 'B_val2' dengan kaedah flipBit(), di mana operasi flipBit dilakukan pada pembolehubah 'B_value' dengan nilai indeks '2.'

Kedudukan indeks nilai BigInteger '9' dibalikkan dengan indeks '2,' yang mengeluarkan nilai '13' dalam output.

Kesimpulan

Kelas BigInteger sangat mudah digunakan dan kerap digunakan dalam pengaturcaraan kompetitif kerana perpustakaan kaedahnya yang luas. BigInteger digunakan untuk pengiraan nombor yang sangat panjang yang melebihi kapasiti semua jenis data primitif yang boleh diakses pada masa ini. Ia menyediakan pelbagai kaedah untuk operasi aritmetik modular. Kami mencipta BigInteger dahulu dan kemudian merangkumi beberapa kaedahnya.