CodeGym /Java Blog /Acak /Kelas Java BigInteger
John Squirrels
Level 41
San Francisco

Kelas Java BigInteger

Dipublikasikan di grup Acak

Apa itu Kelas BigInteger?

Ada beberapa tipe data primitif di Java yang digunakan, seperti int atau long, untuk melakukan operasi integer. Namun, terkadang kita perlu menyimpan sejumlah besar di luar cakupan tipe data primitif tersebut. Kelas BigInteger digunakan untuk perhitungan matematis untuk bilangan yang sangat besar. Ia menyediakan semua metode dari paket java.lang.Math dan analog ke semua operator integer primitif Java. Bilangan Bulat BesarKelas mencakup operasi untuk aritmatika modular, manipulasi bit, perhitungan GCD, dan beberapa operasi lainnya. BigIntegers direpresentasikan dalam notasi pelengkap dua. Tidak ada batasan teoretis tentang seberapa besar angka yang dapat disimpan karena memori dialokasikan secara dinamis. Namun, secara praktis memori terbatas dan kita dapat menyimpan bilangan bulat yang memiliki jumlah bit kurang dari atau sama dengan Integer.MAX_VALUE . Ini memberikan batas atas yang cukup besar untuk menyimpan hampir semua bilangan besar.

Bagaimana Kelas BigInteger Diimplementasikan?


import java.math.BigInteger;
Untuk mengimplementasikan kelas BigInteger dalam kode Anda, Anda perlu mengimpor paket java.math.BigInteger .

Deklarasi Kelas BigInteger

Kelas BigInteger di Java dideklarasikan dengan cara berikut dalam paket java.math :

public class BigInteger
   extends Number
      implements Comparable<BigInteger>
Kelas BigInteger memperluas kelas Number dan mengimplementasikan antarmuka Sebanding . Itu dideklarasikan dan didefinisikan dalam paket java.math .

Pembangun Kelas

Kelas BigInteger Java memiliki banyak konstruktor yang kelebihan beban. Anda dapat mencoba dan menjalankan masing-masing di editor untuk melihat cara kerjanya.
Sr# Konstruktor Keterangan
1 BigInteger(byte[] val) Menerjemahkan larik byte menjadi BigInteger .
2 BigInteger(int signum, byte[] magnitudo) Menerjemahkan representasi besaran tanda ke dalam BigInteger .
3 BigInteger(int bitLength, int kepastian, Random rnd) Membuat BigInteger positif yang dihasilkan secara acak dengan panjang yang ditentukan.
4 BigInteger(Nilai string) Menerjemahkan representasi string desimal menjadi BigInteger .
5 BigInteger(String val, int radix) Mengonversi representasi String dalam radix yang ditentukan menjadi BigInteger .

Metode Kelas

Kelas BigInteger Java memiliki banyak metode, beberapa di antaranya dijelaskan di bawah ini. Dalam tabel, 'ini' mewakili BigInteger yang memanggil metode dan ' val ' adalah argumen yang diteruskan ke metode.
abs() Ini mengembalikan nilai absolut dari ' ini ' BigInteger .
menambahkan() Ia mengembalikan Biginteger dengan menghitung ' this + val '.
mengurangi() Ini mengembalikan Biginteger dengan menghitung ' this - val '.
membagi() Ini mengembalikan Biginteger dengan menghitung ' this / val '.
berkembang biak() Ini mengembalikan Biginteger dengan menghitung ' this * val '.
Nilai dari() Ia mengembalikan nilai BigInteger dari long yang diberikan .
sama dengan() Itu membandingkan kesetaraan antara ' ini ' BigInteger dan objek yang diberikan.
pow() Ini mengembalikan Biginteger dengan menghitung ' thisexponent '.
menit() Ini mengembalikan minimum antara ' ini ' BigInteger dan nilai yang diberikan.
maks() Ini mengembalikan maksimum antara ' ini ' BigInteger dan nilai yang diberikan.
mod() Ini mengembalikan nilai untuk ' mod ini m '.
gcd() Ini mengembalikan BigInteger yang merupakan pembagi umum terbesar antara nilai absolut ' this ' dan ' nilai yang diteruskan '.
bitCount() Ia mengembalikan jumlah bit dalam representasi two's-complement dari ' this ' BigInteger .
bitPanjang() Ia mengembalikan jumlah bit, tidak termasuk bit tanda, dalam representasi pelengkap dua-minimal dari ' this ' BigInteger .
Dan() Ini mengembalikan Biginteger dengan menghitung ' this & val '.
atau() Ini mengembalikan Biginteger dengan menghitung ' ini | val '.
bukan() Ia mengembalikan Biginteger dengan menghitung ' ~this'.
dan tidak() Ini mengembalikan Biginteger dengan menghitung ' this & ~val '.
intValue() Itu mengubah BigInteger menjadi int .
floatValue() Itu mengubah BigInteger menjadi float .
nilaipanjang() Ini mengonversi BigInteger menjadi long .
nilaiganda() Ini mengubah BigInteger menjadi double .
keString() Ia mengembalikan representasi string desimal dari BigInteger .

Contoh 1


import java.math.BigInteger;
public class Example1 {
    static BigInteger calculateFactorial(int val) {
        // Initialize result
        BigInteger f = BigInteger.ONE; // Or new BigInteger("1")
        // compute factorial
        for (int i = 2; i <= val; i++) {
            f = f.multiply(BigInteger.valueOf(i));
        }

        return f;
    }

    // Driver method
    public static void main(String[] args) {
        int val = 25;
        System.out.println(calculateFactorial(val));
    }
}

Keluaran

15511210043330985984000000

Penjelasan

Pada cuplikan di atas, faktor bilangan besar dihitung menggunakan Kelas BigInteger dengan mengimpor paket java.math.BigInteger . Kami telah membuat metode countFactorial . Metode ini membuat BigInteger dan kemudian menghitung faktorial dengan menggunakan metode perkalian f.multiply(BigInteger.valueOf(i)) .

Contoh 2


import java.math.BigInteger;
public class Example2 {

    public static void main(String[] args) {
        BigInteger big1 = new BigInteger("20");
        BigInteger big2 = new BigInteger("60");
        BigInteger sub = big2.subtract(big1);
        System.out.println(big2 + " - " + big1 + " = " + sub);
        BigInteger add = big1.add(big2);
        System.out.println(big1 + " + " + big2 + " = " + add);
        BigInteger mul = big1.multiply(big2);
        System.out.println(big1 + " * " + big2 + " = " + mul);
        BigInteger div = big2.divide(big1);
        System.out.println(big2 + " / " + big1 + " = " + div);
        BigInteger min = big1.min(big2);
        System.out.println("min value: " + min);
        BigInteger max = big1.max(big2);
        System.out.println("max value: " + max);
    }
}

Keluaran

60 - 20 = 40 60 + 20 = 80 60 * 20 = 1200 60 / 20 = 3 nilai min: 20 nilai maks: 60

Penjelasan

Dalam cuplikan di atas, kita telah membuat dua BigInteger menggunakan konstruktor BigInteger(String val) . Kami menerapkan metode yang berbeda pada BigInteger s big1 dan big2 dengan nilai masing-masing 20 dan 60. Kami menerapkan metode berikut:
  1. big2.subtract(big1) untuk mengurangi 20 dari 60.
  2. big1.add(big2) untuk menambahkan 20 dan 60.
  3. big1.multiply(big2) untuk mengalikan 20 dan 60.
  4. big2.divide(big1) untuk membagi 60 dengan 20.
  5. big1.min(big2) untuk mendapatkan yang lebih kecil dari dua nilai.
  6. big1.max(big2) untuk mendapatkan yang lebih besar dari dua nilai.
Penting untuk dicatat bahwa java.math.BigInteger diimpor di bagian atas kode.

Kesimpulan

Sekarang Anda seharusnya sudah familiar dengan Kelas BigInteger di Java. Anda harus dapat menggunakan BigInteger s dalam kode Anda menggunakan berbagai jenis konstruktor. Anda juga harus dapat melakukan operasi aritmatika dan logika yang berbeda pada mereka dengan menggunakan metode Kelas BigInteger . Sebagai tantangan, Anda dapat mencoba memanggil metode berbeda dengan nilai BigInteger s yang berbeda. Ini akan semakin memperkuat pemahaman Anda tentang BigInteger s di Jawa. Agar lebih percaya diri dalam belajar coba praktekkan berulang-ulang. Kunci coding yang baik adalah latihan. Semoga sukses dan selamat coding!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION