BigInteger untuk nombor besar
Integer berketepatan arbitrari
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:
longmelimpah secara senyap, tetapiBigIntegertidak mempunyai had tetap- Ciptanya daripada rentetan atau menggunakan
valueOf - Ia tidak boleh diubah, jadi simpan hasil setiap operasi
add,multiply,pow, danmodmerangkumi pengiraan biasa- Gunakannya untuk faktorial, kriptografi, dan apa-apa nilai yang lebih besar daripada
long
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
- Mengapa bukan double untuk wang
- Bekerja dengan BigDecimal
- Pembundaran dan skala
- BigInteger untuk nombor besar