Mod von negative Zahlen in Java

Joel Swapnil Singh 12 Oktober 2023
  1. Ermitteln des Mods negativer Zahlen mit dem %-Operator in Java
  2. Ermitteln des Mods negativer Zahlen mit Hilfe der Methode floormod()
  3. Ermitteln des Mods negativer Zahlen mit der Methode Math.abs()
Mod von negative Zahlen in Java

In Java können wir den Rest zweier Zahlen nach der Division mit Hilfe des Modulo- oder Restoperators (%) finden.

Angenommen, wir haben zwei Zahlen, A und B, wobei A der Dividende und B der Divisor ist. Wenn wir A mod B verwenden, erhalten wir einen Rest, wenn A durch B dividiert wird.

Wenn wir uns mit negativen Zahlen befassen, erhalten wir manchmal falsche Ergebnisse. In diesem Artikel werden verschiedene Möglichkeiten erörtert, den Mod für negative Zahlen in Java zu finden.

Wenn wir negative Zahlen haben und den Operator % verwenden, erhalten wir das Ergebnis abhängig vom Vorzeichen des linken Operanden. Wenn der linke Operand positiv ist, erhalten wir ein positives Ergebnis, und wenn der linke Operand negativ ist, erhalten wir ein negatives Ergebnis.

Um das obige Problem zu lösen, können wir den Mod negativer Zahlen finden, indem wir den Operator %, die Methode floorMod() und die Methode Math.abs() verwenden. Lassen Sie uns jeden der Ansätze einzeln besprechen.

Ermitteln des Mods negativer Zahlen mit dem %-Operator in Java

Wir können den Mod der negativen Zahl finden, indem wir zuerst den Mod-Faktor addieren, bis wir in den positiven Bereich kommen, und dann den %-Operator aufrufen. Mit Hilfe dieser Methode haben wir immer den Mod-Faktor größer als die Ausgabe.

Sehen wir uns den folgenden Code an, um zu verstehen, wie er funktioniert.

public class Main {
  public static void main(String args[]) {
    int x = -4;
    int y = 3;
    int res = x % y;
    System.out.println("Mod value before operation = " + res);
    while (x < 0) x += y;
    int mod_res = x % y;
    System.out.println("Mod value after operation = " + mod_res);
  }
}

Ausgabe:

Mod value before operation = -1
Mod value after operation = 2

Ermitteln des Mods negativer Zahlen mit Hilfe der Methode floormod()

Wir können den Mod der negativen Zahl auch finden, indem wir die Methode floorMod() verwenden. Mit Hilfe dieser Methode erhalten wir den Bodenmodul der int-Argumente.

Schauen wir uns die Syntax der Funktion floorMod() an.

Syntax:

floorMod(number, mod)

Wenn die Funktion floorMod() auf einer negativen Ganzzahl aufgerufen wird, erhalten wir die Ausgabe mit dem Mod-Faktor-Zeichen. Sehen wir uns den folgenden Code an, um zu verstehen, wie er funktioniert.

public class Main {
  public static void main(String args[]) {
    int x = -4;
    int y = 3;
    int res = x % y;
    System.out.println("Mod value before operation = " + res);
    int mod_res = Math.floorMod(
        x, y); // This will have the output value as positive since the smod factor is positive
    System.out.println("Mod value after operation having mod factor as positive = " + mod_res);
    x = 4;
    y = -3;
    mod_res = Math.floorMod(
        x, y); // This will have the output value as negative since the mod factor is negative
    System.out.println("Mod value after operation having mod factor as negative = " + mod_res);
  }
}

Ausgabe:

Mod value before operation = -1
Mod value after operation having mod factor as positive = 2
Mod value after operation having mod factor as negative = -2

Ermitteln des Mods negativer Zahlen mit der Methode Math.abs()

Wir können auch den Mod negativer Zahlen finden, indem wir die Methode Math.abs() verwenden.

Diese Aufgabe lösen wir mit Hilfe eines ternären Operators. Dieser Operator liefert in beiden Fällen eine Ausgabe, unabhängig davon, ob die Zahl positiv oder negativ ist.

Sehen wir uns den folgenden Code an, um zu verstehen, wie er funktioniert.

public class Main {
  public static void main(String args[]) {
    int x = -4;
    int y = 3;
    int res = x % y;
    System.out.println("Mod value before operation = " + res);
    int mod_res = (x < 0) ? (y - (Math.abs(x) % y)) % y : (x % y);
    System.out.println("Mod value after operation = " + mod_res);
  }
}

Ausgabe:

Mod value before operation = -1
Mod value after operation = 2

Verwandter Artikel - Java Math