En términos generales, la implementación de grandes números se realiza a través de dos métodos: Biginteger y BigDecimal. Estos dos métodos representan enteros de precisión arbitrarios inmutables y números decimales de precisión arbitrarios inmutables (números de puntos flotantes). Utilizado principalmente en cálculos de alta precisión. Estas dos clases hacen operaciones de alta precisión en Java Simple. Sin embargo, este artículo no introduce operaciones de gran número en Java a través de los dos métodos anteriores.
La idea principal es: colocar dos números en la cadena, luego sacar cada número, colocarlo en la matriz, comenzar el cálculo desde el último bit, calcular la adición y determinar si el transporte se lleva. El transporte es el bit anterior +1. Si la longitud excede, cópielo a la nueva matriz.
El código es el siguiente:
clase pública BigIntadd {private int [] array; // declarar una matriz // la función para calcular la adición de grandes números public static string bigadd (bigIntadd fisrtnum, bigIntadd SecondNum) {String result = ""; boolean false = false; // la bandera para determinar si el array de los límites está fuera de los límites intu nulo; // coloque la cadena más larga en la matriz de ArrayOne, porque el resultado del cálculo debe colocarse en la matriz de ArrayOne if (fisrtnum.instance (). Longitud> = SecondNum.Instance (). Longitud) {ArrayOne = Fisrtnum.Instance (); Arraytwo = SecondNum.instance ();} más {ArrayOne = 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; // Agregar el siguiente bit a 1} más ArrayThree falg = true; arrayTheRe = new int [ArrayOne.Length + 1]; System.ArrayCopy (ArrayOne, 0, ArrayThree, 0, ArrayOne.Length); ArrayThree [ArrayOne.length] = 1; // Asigna el bit más alto de ArrayThree, equivalente a 1 en acao {for (int i: ArrayTheRe) {resultado += i;}} else {for (int i: ArrayOne) {resultado += i;}} // Invertir el resultado y return New StringBuffer (result) .Reverse (). ToString ();} // Inicializar el método privado privado int [] instancia () {return array;} // inicializar la construcción de la construcción (striege (arrayizar el método de array stray -int -int [] instancia () {return array;} // inicialize la construcción de la construcción de la construcción (arraye (arrayizar el método de array de array. {StringBuffer sb = new StringBuffer (num); String String = sb.reverse (). ToString (); // Implementar inversión de cadena para facilitar el cálculo array = new int [string.length ()]; // Convertir String en una matriz para (int i = 0; i <string.length (); i ++) {array [i] = integer i + 1));}} public static void main (string [] args) {string dult = bigIntadd.bigadd (new BigIntadd ("521111111"), new BigIntadd ("409999999999")); System.out.println (Result);}}resultado:
Resumir
Lo anterior es todo el contenido de este artículo sobre la programación de Java para implementar dos grandes números agregados ejemplos de código. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!