CCalculate.Studio

% Calculadora de Módulo

A operação módulo encontra o resto que sobra quando um número é dividido por outro. Esta calculadora obtém a mod b pela convenção do piso (matemática), na qual o sinal do resultado acompanha sempre o divisor, e também mostra o resultado por truncamento (usado em linguagens de programação), no qual o sinal acompanha o dividendo — as duas convenções coincidem para números positivos, mas divergem sempre que aparece um valor negativo.

Última revisão: 2026-07-07
Add as preferred on Google

Entendendo as convenções de sinal

As duas convenções produzem resultados idênticos sempre que os dois números são positivos, mas divergem assim que aparece um valor negativo, como mostrado abaixo.

abResultado pelo piso (sinal de b)Resultado por truncamento (sinal de a)
13533 (igual — ambos positivos)
−1352−3
13−5−23
−13−5−3−3 (igual — ambos negativos)
  • O módulo pelo piso (usado aqui como resultado principal) é a convenção mais comum na matemática pura e na teoria dos números, e coincide com o operador % nativo do Python.
  • O módulo por truncamento (exibido como resultado secundário) coincide com o operador % nativo de JavaScript, C, C++, Java e da maioria das linguagens da família C, nas quais o sinal do resto segue o dividendo.
  • O módulo por zero é indefinido e não é calculado por esta calculadora; o divisor precisa ser um número diferente de zero.

O que é a operação módulo?

A operação módulo, escrita a mod b (ou a % b), devolve o resto da divisão de a por b. Por exemplo, 13 mod 5 = 3, porque 13 = 2 × 5 + 3 — dividir 13 por 5 dá quociente 2 e sobram 3. O módulo é fundamental na teoria dos números (aritmética modular, ou “do relógio”), na computação (hashing, indexação cíclica, somas de verificação) e no raciocínio cotidiano sobre restos e ciclos (como dias da semana ou horas do relógio).

Existem duas convenções amplamente usadas para definir o sinal do resultado quando há números negativos: o módulo pelo piso, em que o resultado tem sempre o mesmo sinal do divisor b, e o módulo por truncamento, em que o resultado tem sempre o mesmo sinal do dividendo a. As duas são definições matematicamente válidas de “resto” e coincidem exatamente sempre que a e b são positivos; elas só divergem quando há um valor negativo envolvido.

A escolha da convenção importa na prática porque diferentes linguagens de programação adotam padrões diferentes: o operador % do Python usa o módulo pelo piso, ao passo que JavaScript, C, C++, Java e a maioria das linguagens da família C usam o módulo por truncamento (acompanhando o sinal do dividendo). Esta calculadora informa os dois resultados explicitamente, para que qualquer uma das convenções possa ser lida diretamente.

Como usar esta calculadora de módulo

  1. Informe o dividendo (a) — o número que está sendo dividido.
  2. Informe o divisor (b) — o número pelo qual você divide. O divisor não pode ser 0, já que a divisão (e o módulo) por zero é indefinida.
  3. Leia o resultado pela convenção do piso (o sinal acompanha sempre o divisor) — a convenção matemática mais comum na teoria dos números.
  4. Compare com o resultado por truncamento (o sinal acompanha sempre o dividendo) se você precisa reproduzir o operador % nativo de alguma linguagem, e confira o quociente e a equação completa da divisão para ver o passo a passo.

As fórmulas do módulo pelo piso e por truncamento

Pelo piso: q = ⌊a ÷ b⌋, r = a − b × q (o sinal de r acompanha o divisor b)
Por truncamento: q = trunc(a ÷ b), r = a − b × q (o sinal de r acompanha o dividendo a)
Exemplo: 13 mod 5 = 3 (as duas convenções coincidem)
Exemplo: −13 mod 5 → pelo piso = 2, por truncamento = −3 (as convenções divergem)

O módulo pelo piso define o quociente como q = ⌊a ÷ b⌋ (arredondado para baixo, em direção a menos infinito) e depois r = a − b×q. Isso garante que o resto r tenha sempre o mesmo sinal do divisor b (ou seja 0) e satisfaça 0 ≤ r < |b| quando b > 0. Exemplo resolvido: 13 mod 5: q = ⌊13/5⌋ = 2, r = 13 − 5×2 = 3.

Exemplo resolvido com dividendo negativo: −13 mod 5 (piso): q = ⌊−13/5⌋ = ⌊−2,6⌋ = −3, r = −13 − 5×(−3) = −13 + 15 = 2. Repare que o resultado é positivo (acompanhando o divisor positivo), o que difere do resultado por truncamento abaixo.

O módulo por truncamento define o quociente arredondando em direção a zero, em vez de em direção a menos infinito, e depois calcula o resto da mesma forma; isso garante que o resto tenha sempre o mesmo sinal do dividendo a (ou seja 0). Exemplo resolvido: −13 mod 5 (truncamento, o resultado de % em JavaScript/C/Java): o quociente arredonda −2,6 em direção a zero, virando −2, portanto r = −13 − 5×(−2) = −13 + 10 = −3 — negativo, acompanhando o dividendo negativo, ao contrário do +2 obtido pelo piso com as mesmas entradas.

Erros comuns

  • Supor que todas as linguagens de programação calculam a mod b da mesma forma com números negativos — JavaScript, C, C++ e Java usam o módulo por truncamento, ao passo que Python e muitos textos de matemática usam o módulo pelo piso, e os resultados diferem sempre que a é negativo.
  • Esquecer que o resultado pelo piso acompanha sempre o sinal do divisor, e não o do dividendo — o oposto do que a convenção por truncamento (estilo JavaScript) entrega.
  • Tentar calcular a mod 0 — a operação módulo, assim como a divisão, é indefinida quando o divisor é zero.
  • Usar entradas não inteiras esperando aritmética modular de inteiros — esta calculadora aceita números reais e aplica a mesma lógica de piso e truncamento, mas muitas propriedades clássicas da aritmética modular (como a do relógio) são definidas especificamente para inteiros.

Perguntas frequentes

Qual é a diferença entre módulo pelo piso e por truncamento?

O módulo pelo piso arredonda o quociente em direção a menos infinito, portanto o resto tem sempre o sinal do divisor. O módulo por truncamento arredonda o quociente em direção a zero, portanto o resto tem sempre o sinal do dividendo. Eles coincidem quando os dois números são positivos, mas diferem quando algum é negativo — por exemplo, −13 mod 5 vale 2 pela convenção do piso e −3 pela do truncamento.

Por que −13 mod 5 dá respostas diferentes em calculadoras diferentes?

Depende da convenção de sinal adotada. O módulo pelo piso dá 2 (o resultado acompanha o sinal positivo do divisor e satisfaz 0 ≤ r < 5). O módulo por truncamento dá −3 (o resultado acompanha o sinal negativo do dividendo). O operador % do Python devolve 2 (piso); os de JavaScript, C e Java devolvem −3 (truncamento). Nenhum é “mais correto” — são duas definições matemáticas distintas e igualmente válidas.

Como calcular a mod b à mão?

Divida a por b para obter o quociente, arredonde-o segundo a convenção escolhida (para baixo no piso, em direção a zero no truncamento) e depois subtraia de a o produto de b pelo quociente arredondado: resto = a − b × quociente. Para 13 mod 5: 13 ÷ 5 = 2,6, que arredonda para quociente 2 nas duas convenções, portanto o resto = 13 − 5×2 = 3.

O que significa mod na aritmética modular e na aritmética do relógio?

A aritmética modular trata os números como se eles “dessem a volta” ao chegar ao módulo — o exemplo clássico é o relógio de 12 horas, em que o tempo é calculado mod 12 (ou mod 24 no formato de 24 horas). Por exemplo, 15 horas no formato de 24 horas correspondem a 15 mod 12 = 3 no mostrador de 12 horas. O módulo é justamente a operação que produz esse resto “dado a volta”.

Dá para calcular o módulo com divisor negativo?

Sim. Pela convenção do piso, a mod b (com b negativo) produz um resto com o mesmo sinal de b — por exemplo, 13 mod −5 = −2, já que 13 = (−3)×(−5) + (−2). Pela convenção do truncamento, o resto acompanha o sinal do dividendo: 13 mod −5 = 3, porque o quociente arredonda em direção a zero, virando −2, o que dá 13 − (−5)×(−2) = 13 − 10 = 3.

Referências

  1. Rosen KH. Elementary Number Theory and Its Applications. 6th ed. Pearson, 2010. (Division algorithm and modular arithmetic.)
  2. Leijen D. Division and Modulus for Computer Scientists. Utrecht University Technical Report UU-CS-2001-20, 2001. (Formal comparison of flooring, truncating and Euclidean division conventions.)
  3. ECMA International. ECMA-262: ECMAScript Language Specification — the remainder operator (%). ecma-international.org.

Teoria dos números · Todas as calculadoras

Calculadoras relacionadas