Calculadora de Módulo

Resto (a mod b)
Próximo

A operação de módulo (ou “mod”) retorna o resto após a divisão inteira: 17 mod 5 = 2 porque 17 = 3·5 + 2. É o coração da aritmética de relógio, criptografia, funções hash e o padrão “cada N-ésima linha” em SQL. Esta calculadora aceita operandos inteiros ou decimais, mostra o quociente e o resto explicitamente, e lida com as diferenças de convenção de sinal entre as linguagens (o % do Python ≠ o % do C para negativos).

Como calcular a mod b

  1. 1

    Insira o dividendo (a) e o divisor (b)

    Quaisquer números; decimais e negativos são aceitos.

  2. 2

    Escolha a convenção de sinal

    Divisão truncada (C, Java, Go), divisão arredondada para baixo (Python, Ruby, convenção matemática).

  3. 3

    Leia o quociente e o resto

    a = q·b + r, com a regra escolhida para o sinal de r.

  4. 4

    Veja a expressão matemática

    Valores substituídos tornam cada passo visível.

Duas convenções para números negativos

Para operandos positivos, todas as convenções concordam: 17 mod 5 = 2. Para negativos, as linguagens diferem:

Linguagem -17 mod 5 Convenção
Python, Ruby 3 Arredondada para baixo
C, Java, Go, JS -2 Truncada
Livros de matemática 3 Arredondada para baixo (geralmente)

Divisão arredondada para baixo: o quociente arredonda em direção a −∞. O resto sempre tem o sinal do divisor: mesmo sinal que b. Divisão truncada: o quociente arredonda em direção a zero. O resto tem o sinal do dividendo: mesmo sinal que a.

Para a = -17, b = 5:

  • Truncada: q = -3 (arredondado em direção a 0), r = -17 − (-3)·5 = -2.
  • Arredondada para baixo: q = -4 (arredondado em direção a -∞), r = -17 − (-4)·5 = 3.

Ambas estão corretas, dada a convenção. Escolha para corresponder à sua linguagem.

Onde o módulo aparece

  • Tempo. Minutos em uma hora, dias da semana, segundos em um dia, toda a aritmética de módulo.
  • Tabelas hash. hash(chave) mod tamanho_tabela escolhe um balde.
  • Escalonamento round-robin. tarefa_i mod contagem_trabalhadores atribui trabalho.
  • Criptografia. RSA e Diffie-Hellman são baseados em mod n com grandes primos.
  • Cada N-ésima linha. Em SQL: WHERE id % 3 = 0.
  • Verificação par/impar. n mod 2 == 0 significa par.
  • Padrões alternados. Listras de linha, colorindo cada item alternado.
  • Buffers circulares. (índice + 1) mod tamanho envolve.

Identidades úteis

  • (a + b) mod n = ((a mod n) + (b mod n)) mod n
  • (a · b) mod n = ((a mod n) · (b mod n)) mod n
  • (a^k) mod n pode ser calculado por exponenciação modular rápida em O(log k), crítico para criptografia de grandes números.
  • a mod 1 = 0 para qualquer inteiro a.
  • a mod a = 0.

Módulo decimal

Para números reais, a definição natural é a mod b = a − b · floor(a/b). 7.5 mod 2.5 = 0 porque 7.5 é um múltiplo exato. 7.6 mod 2.5 = 0.1.

O operador % do JavaScript funciona em números reais; o fmod do Python faz módulo real truncado; o % do Python faz módulo real arredondado para baixo.

Exemplos resolvidos

  • 100 mod 7: 100 = 14·7 + 2, então o resto é 2.
  • 25 mod 4: 25 = 6·4 + 1, então o resto é 1.
  • -10 mod 3 (arredondado para baixo): -10 = -4·3 + 2, resto 2. (Truncado daria -1.)
  • 17.5 mod 5: 17.5 = 3·5 + 2.5, resto 2.5.

Perguntas frequentes

Na maioria das vezes, são sinônimos. Formalmente, “módulo” geralmente implica a convenção matemática (arredondada para baixo), enquanto “resto” frequentemente se refere à variante truncada (estilo C). Os nomes vazam para a documentação das linguagens; quando importa, especifique a convenção.

O Python segue a convenção matemática (arredondada para baixo), que mantém o sinal do resto correspondente ao do divisor. O C segue a convenção do ALU de hardware (truncada), onde o sinal do resto corresponde ao do dividendo. Nenhuma está errada; são escolhas diferentes.

Não, a divisão por zero é indefinida. A calculadora retorna um erro para b = 0.

Geralmente, sim. Verifique a especificação da sua linguagem para o tratamento de números negativos, Python e Ruby diferem de C, Java, Go e JavaScript.

Para matemática estilo RSA com números de 2048 bits, use uma biblioteca dedicada (o pow(a, b, n) do Python, o BigInteger.modPow do Java). Esta calculadora lida com valores do dia a dia, não com valores de grau criptográfico.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas