Secara umum, implementasi jumlah besar dilakukan melalui dua metode: BigInteger dan BigDecimal. Kedua metode ini mewakili bilangan bulat presisi sewenang -wenang yang tidak dapat diubah dan bilangan desimal presisi sewenang -wenang yang tidak dapat diubah (angka titik mengambang). Terutama digunakan dalam perhitungan presisi tinggi. Kedua kelas ini membuat operasi presisi tinggi di Java Simple. Namun, artikel ini tidak memperkenalkan operasi nomor besar di Java melalui dua metode di atas.
Gagasan utamanya adalah: Masukkan dua angka ke dalam string, lalu keluarkan setiap angka, masukkan ke dalam array, mulai perhitungan dari bit terakhir, hitung penambahan, dan tentukan apakah carry dibawa. Carry adalah bit sebelumnya +1. Jika panjangnya melebihi, salin ke array baru.
Kodenya adalah sebagai berikut:
kelas publik BigIntadd {private int [] array; // mendeklarasikan array // fungsi untuk menghitung penambahan jumlah besar public static string bigadd (bigintadd fisrtnum, bigintadd secondnum) {string hasil = ""; array; null; // Masukkan string yang lebih panjang ke dalam array arrayon, karena hasil perhitungan harus dimasukkan ke dalam array arrayone if (fisrtnum.instance (). length> = secondnum.instance (). length) {arrayone = fisrtnum.instance (); arraytwo = secondnum.instance () {arraytance (arraytance = arraytwo = secondnum.instance () {arraytance () {array (); secondNum.instance();arrayTwo = fisrtNum.instance();} for (int i = 0; i < arrayTwo.length; i++) {if (arrayOne[i] + arrayTwo[i] < 10) {//When there is no carry, arrayOne[i] = arrayOne[i] + arrayTwo[i];} else if (arrayone [i] + arraytwo [i]> = 10) {// arrayone [i] = arrayone [i] + arraytwo [i] - 10; if ((i + 1) <arrayone.length) {arrayone [i + 1] = arrayone [i + 1] + 1;//Tambahkan bit berikutnya [i + 1] = arrayone [i + 1] + 1;//Tambahkan bit berikutnya 1} ArrayTheRe falg = true; arraythree = int baru [arrayone.length + 1]; System.arraycopy (arrayone, 0, arrayThree, 0, arrayone.length); arrayThree [arrayone.length] = 1; // tetapkan bit tertinggi dari arraythree, setara dengan 1 di carry}}}}}}}}}}}}}}} {for (int i: arraythree) {result += i;}} else {for (int i: arrayOne) {result += i;}} // membalikkan hasil dan mengembalikan stringBuffer baru (hasil) .reverse (). ToString ();} // inisialisasi metode array int [). {StringBuffer SB = StringBuffer baru (num); string string = sb.reverse (). ToString (); // mengimplementasikan string inversi untuk memfasilitasi array = new int [string.length ()]; // convert string menjadi array untuk (int i = 0; i <string.length (); i ++) {iRay untuk (int i = 0; i <string.length (); i ++) {array untuk (int i = 0; i <string.length (); i ++) {array untuk (int i = 0; i <string.length (); i ++) {iRray (int i = 0; i <string.length (); i ++) {iRray) {int i = 0; i <string.length (); i + 1));}} public static void main (string [] args) {string result = BigIntadd.bigadd (BigIntadd baru ("521111111"), BigIntadd baru ("4099999999")); System.out.println (hasil);}}hasil:
Meringkaskan
Di atas adalah seluruh konten artikel ini tentang pemrograman Java untuk mengimplementasikan dua nomor besar menambahkan contoh kode. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!