De um modo geral, a implementação de grandes números é feita através de dois métodos: Biginteger e BigDecimal. Esses dois métodos representam números de precisão arbitrária imutável e números decimais arbitrários de precisão arbitrária imutável (números de ponto flutuante). Usado principalmente em cálculos de alta precisão. Essas duas classes tornam simples as operações de alta precisão no Java. No entanto, este artigo não introduz operações de grande número em Java nos dois métodos acima.
A idéia principal é: coloque dois números na string e, em seguida, retire cada número, coloque -o na matriz, inicie o cálculo a partir do último bit, calcule a adição e determine se o transporte é transportado. O transporte é o bit anterior +1. Se o comprimento exceder, copie -o para a nova matriz.
O código é o seguinte:
classe pública bigIntadd {private int [] array; // declara uma matriz // a função para calcular a adição de grandes números public estática string bigadd (bigIntadd fisrtnum, bigIntadd segundonum) {string result = ""; null; // Coloque a corda mais longa na matriz de arrayone, porque o resultado do cálculo deve ser colocado na matriz de arrayone se (fisrtnum.instance (). length> = Secondnum.instance (). length) {Arrayone = fisrtnum.Instance (); Arraytwo = SecondNum.inSTANCE () (); SecondNum.Instance (); ArrayTwo = fisrtnum.Instance ();} para (int i = 0; i <Arraytwo.length; i ++) {if (Arrayone [i] + ArrayTwo [i] <10) {// Quando não há transporte, prisão [i] = [i]; (Arrayone [i] + Arraytwo [i]> = 10) {// Arrayone [i] = Arrayone [i] + Arraytwo [i] - 10; if ((i + 1) <Arrayone.length) {Arrayone [i + 1] = ArrayOne [i + 1] + 1; // Adicionar até 1 {}} {} {i + 1]. ArrayThree Falg = true; ArrayThree = new int [Arrayone.Length + 1]; System.arrayCopy (Arrayone, 0, ArrayThree, 0, Arrayone.length); ArrayThree [Arrayone.Length] = 1; // atribui o bit mais alto do ArrayThree, o equivalente a 1; {for (int i: ArrayThree) {resultado += i;}} else {for (int i: Arrayone) {resultado += i;}} // reverter o resultado e retornar novo stringbuffer (resultado) .ververse (). {StringBuffer sb = new StringBuffer (num); string string = sb.reverse (). Tostring (); // implemente a inversão da string para facilitar a matriz de cálculo = new int [string.lengngthen); // converter string em uma matriz para (int = 0; i <string.lengngthen (); i ++). + 1));}} public static void main (string [] args) {string resultado = bigIntadd.bigadd (new bigIntadd ("5211111111"), novo bigintadd ("40999999999"); System.out.println (resultado);}}resultado:
Resumir
O exposto acima é o conteúdo inteiro deste artigo sobre a programação Java para implementar dois exemplos de código adicionados de dois grandes números. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!