Módulo em Java

Rupam Yadav 12 outubro 2023
  1. Use Math.floorMod() para calcular o mod de dois números em Java
  2. Use o operador % para calcular o mod de dois números em Java
Módulo em Java

O módulo ou operador de módulo retorna o restante dos dois inteiros após a divisão. É utilizado em tarefas simples, como descobrir um número par ou não, e em tarefas mais complexas, como rastrear a próxima posição de escrita em um array circular.

Use Math.floorMod() para calcular o mod de dois números em Java

A função Math.floorMod(a,b) aceita dois argumentos que podem ser do tipo inteiro ou longo. Na função, a é o dividendo enquanto b é o divisor. Ele retorna o módulo de piso dos dois argumentos passados ​​para a função. O modo de dizer a e b produzirá um resultado maior ou igual a 0 e menor que b.

Aqui no código fornecido abaixo, a variável num1 é exatamente divisível por num2; portanto, o resto é 0. Para o segundo cenário, temos num3 e num4 do mesmo sinal e dá um resto do mesmo sinal apenas.

Mas se considerarmos o terceiro cenário onde o dividendo num5 é positivo enquanto o divisor num6 é negativo, o restante carregará o sinal do divisor. Da mesma forma, no último caso, dividendo, num7 ainda é negativo; o resultado carrega apenas o sinal do divisor positivo.

import java.lang.Math;

public class Main {
  public static void main(String[] args) {
    int num1 = 20, num2 = 4;
    System.out.println(Math.floorMod(num1, num2));

    int num3 = 113, num4 = 30;
    System.out.println(Math.floorMod(num3, num4));

    int num5 = 113, num6 = -30;
    System.out.println(Math.floorMod(num5, num6));

    int num7 = -113, num8 = 30;
    System.out.println(Math.floorMod(num7, num8));
  }
}

Resultado

0 23 - 7 7

Use o operador % para calcular o mod de dois números em Java

O operador % restante também é usado para a operação restante. Há uma diferença sutil entre mod e resto. Como mencionado acima, a resultante para o mod de aeb é sempre maior ou igual a 0 e menor que b (divisor).

Se considerarmos o exemplo dado abaixo usando num1% num2, determinamos se num1 é par ou ímpar. Se a condição em que o restante de num1% num2 for igual a 0, o número será par, mais ímpar. Na operação%, a resultante carrega o sinal do dividendo, que é visível se pegarmos num3 % num2. A equação -23 % 2 é igual a -1, portanto, o sinal do dividendo.

Da mesma forma, se o dividendo for positivo, o resto resultante é positivo. Por exemplo, num1 % num4 resulta num resto positivo. A equação 17 % -3 é igual a 2.

public class ModTest {
  public static void main(String args[]) {
    int num1 = 17;
    int num2 = 2;

    boolean result = false;

    if (result = (num1 % num2) == 0) {
      System.out.println("Number " + num1 + " is even");
    } else {
      System.out.println("Number " + num1 + " is odd");
    }

    int num3 = -23;
    int num4 = -3;
    System.out.println("Remainder1: " + num3 % num2);
    System.out.println("Remainder2: " + num1 % num4);
  }
}

Resultado

Number 17 is odd Remainder1 : -1 Remainder2 : 2
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java Math