Java Academy · Pelajaran

BigInteger untuk nombor besar

Integer berketepatan arbitrari

Pelajaran 4 daripada 413 langkah

BigInteger untuk nombor besar ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 4 pelajaran.

Melebihi Integer Panjang

long primitif boleh menyimpan nilai sehingga kira-kira 9.2 kuintilion. Apabila Anda memerlukan integer yang lebih besar daripada itu, Java menyediakan BigInteger daripada pakej java.math, yang tidak mempunyai had atas tetap.

Apabila Integer Panjang Melimpah

Melebihi Long.MAX_VALUE akan membalut nilai secara senyap menjadi nombor negatif. Kerosakan ini ialah punca klasik berlakunya ralat.

public class Main {
    public static void main(String[] args) {
        long max = Long.MAX_VALUE;
        System.out.println(max);
        System.out.println(max + 1);
    }
}

Mencipta BigInteger

Bina BigInteger daripada rentetan digit. Tiada had panjang, jadi Anda boleh menulis nombor yang jauh lebih besar daripada mana-mana primitif.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger huge = new BigInteger("123456789012345678901234567890");
        System.out.println(huge);
    }
}

Daripada long dengan valueOf

Jika nilai permulaan Anda muat dalam long, BigInteger.valueOf ialah kaedah kilang yang mudah digunakan.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger n = BigInteger.valueOf(1000000);
        System.out.println(n);
    }
}

Aritmetik Tidak Boleh Diubah

Seperti BigDecimal, BigInteger tidak boleh diubah. add, subtract, dan multiply mengembalikan objek baharu yang mesti Anda simpan.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("99999999999999999999");
        BigInteger b = BigInteger.valueOf(1);
        System.out.println(a.add(b));
    }
}

Mendarab Nombor Besar

Pendaraban yang akan menyebabkan limpahan pada long berfungsi dengan baik menggunakan BigInteger.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("10000000000");
        BigInteger b = new BigInteger("10000000000");
        System.out.println(a.multiply(b));
    }
}

Mengira Faktorial

Faktorial berkembang dengan sangat pesat. Malah 30 faktorial akan menyebabkan limpahan pada long, tetapi BigInteger dapat mengendalikannya dengan mudah.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger result = BigInteger.ONE;
        for (int i = 1; i <= 30; i++) {
            result = result.multiply(BigInteger.valueOf(i));
        }
        System.out.println(result);
    }
}

Kuasa dan Baki

pow menaikkan nilai kepada eksponen integer, manakala mod memberikan baki. Kedua-duanya biasa digunakan dalam kriptografi.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger base = BigInteger.valueOf(2);
        System.out.println(base.pow(64));
        System.out.println(base.pow(10).mod(BigInteger.valueOf(7)));
    }
}

Membandingkan Nilai

Gunakan compareTo untuk menentukan susunan dua nilai BigInteger. Ia mengembalikan nombor negatif, sifar, atau nombor positif.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("500");
        BigInteger b = new BigInteger("1000");
        System.out.println(a.compareTo(b));
    }
}

Pemalar Berguna

BigInteger menyediakan ZERO, ONE, TWO, dan TEN. Gunakannya sebagai pengumpul permulaan atau dalam gelung.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger sum = BigInteger.ZERO;
        sum = sum.add(BigInteger.TEN).add(BigInteger.ONE);
        System.out.println(sum);
    }
}

Bila Perlu Menggunakannya

Gunakan BigInteger untuk faktorial, pembilang yang sangat besar, kunci kriptografi, dan apa-apa keadaan yang hasilnya mungkin melebihi long. Untuk pengiraan biasa, kekalkan penggunaan primitif kerana ia jauh lebih pantas.

Semakan Ringkas

Uji pemahaman Anda tentang BigInteger.

Imbas Kembali

Anda telah mempelajari cara menggunakan BigInteger:

  • long melimpah secara senyap, tetapi BigInteger tidak mempunyai had tetap
  • Ciptanya daripada rentetan atau menggunakan valueOf
  • Ia tidak boleh diubah, jadi simpan hasil setiap operasi
  • add, multiply, pow, dan mod merangkumi pengiraan biasa
  • Gunakannya untuk faktorial, kriptografi, dan apa-apa nilai yang lebih besar daripada long
Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
104
Pelajaran
374

Soalan Lazim

Adakah pelajaran “BigInteger untuk nombor besar” percuma?

Ya — teks penuh “BigInteger untuk nombor besar” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “BigInteger untuk nombor besar”?

Integer berketepatan arbitrari Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Java Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “BigInteger untuk nombor besar” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mengapa bukan double untuk wang
  2. Bekerja dengan BigDecimal
  3. Pembundaran dan skala
  4. BigInteger untuk nombor besar
← Kembali ke Java Academy