0Pricing
Java Academy · Aula

BigInteger para Números Enormes

Inteiros de precisão arbitrária

BigInteger para Números Enormes é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.

Além dos inteiros longos

O tipo primitivo long pode armazenar valores de até aproximadamente 9,2 quintilhões. Quando você precisa de inteiros maiores que isso, Java oferece BigInteger no pacote java.math, sem um limite superior fixo.

Quando um inteiro longo transborda

Exceder Long.MAX_VALUE faz o valor dar a volta silenciosamente e se tornar um número negativo. Essa corrupção é uma fonte clássica de erros.

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

Criando um BigInteger

Crie um BigInteger a partir de uma sequência de algarismos. Não há limite de comprimento, portanto você pode escrever números muito maiores que qualquer tipo primitivo.

import java.math.BigInteger;

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

A partir de um inteiro longo com valueOf

Se o valor inicial couber em um long, BigInteger.valueOf será um método de fábrica conveniente.

import java.math.BigInteger;

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

Aritmética imutável

Assim como BigDecimal, BigInteger é imutável. add, subtract e multiply retornam novos objetos que você deve guardar.

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));
    }
}

Multiplicando números grandes

Uma multiplicação que causaria o transbordamento de um long funciona perfeitamente com 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));
    }
}

Calculando um fatorial

Os fatoriais crescem rapidamente. Até mesmo o fatorial de 30 transborda um long, mas BigInteger o processa facilmente.

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);
    }
}

Potência e módulo

pow eleva um valor a um expoente inteiro, e mod fornece o resto. Ambos são comuns na criptografia.

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)));
    }
}

Comparando valores

Use compareTo para ordenar dois valores BigInteger. Ele retorna um número negativo, zero ou um número positivo.

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));
    }
}

Constantes úteis

BigInteger fornece ZERO, ONE, TWO e TEN. Use-as como acumuladores iniciais ou em laços.

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);
    }
}

Quando usá-lo

Use BigInteger para fatoriais, contadores muito grandes, chaves criptográficas e qualquer situação em que o resultado possa exceder long. Para contagens comuns, prefira os tipos primitivos, pois são muito mais rápidos.

Verificação rápida

Teste sua compreensão de BigInteger.

Recapitulação

Você aprendeu a usar BigInteger:

  • long transborda silenciosamente, mas BigInteger não tem um limite fixo
  • Crie-o a partir de um texto ou com valueOf
  • Ele é imutável, portanto guarde o resultado de cada operação
  • add, multiply, pow e mod abrangem a matemática comum
  • Use-o para fatoriais, criptografia e qualquer valor maior que long

Perguntas Frequentes

A aula “BigInteger para Números Enormes” é grátis?

Sim — o texto completo de “BigInteger para Números Enormes” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.

O que vou aprender em “BigInteger para Números Enormes”?

Inteiros de precisão arbitrária Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Java Academy?

Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “BigInteger para Números Enormes”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Java Academy?

Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que não usar double para Dinheiro
  2. Trabalhando com BigDecimal
  3. Arredondamento e Escala
  4. BigInteger para Números Enormes
← Voltar para Java Academy