Die Modulo-Operation in Java [] (Die Modulo-Operation in Java), Lektion, Seite 723089
https://www.purl.org/stefan_ram/pub/modulo_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Negative Werte

negativ bedeutet < 0

<= 0 ist nicht-positiv

Negative Werte bei Vergleichen

-10 < -5

Negative Werte bei der ganzzahligen Division

public final class Main

{ public static void main( final java.lang.String[] args )

{ java.lang.System.out.println( 5/2 );

java.lang.System.out.println( -5/2 ); }}

2

-2

Rundet in Richung zu Null. Dadurch ergibt sich ein Sprung bei 0:

public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( 5/2 ); /* 2 */
java.lang.System.out.println( 3/2 ); /* 1 */
java.lang.System.out.println( 1/2 ); /* 0 */
java.lang.System.out.println( -1/2 ); /* 0 */
java.lang.System.out.println( -3/2 ); /* -1 */
java.lang.System.out.println( -5/2 ); /* -2 */ }}

In Java wird bei der ganzzahligen Division in Richtung Null gerundet (trunc, nach Wirth)

Knuth beschreibt eine Division, bei welcher immer abgerundet wird (floor, nach Knuth).

Negative Werte bei der Restoperation

In Java hat der Rest immer das Vorzeichen des Dividenden.

Bei der Knuth-Division hat der Rest das Vorzeichen des Divisors, dies ist dann wohl auch die mathematische Modulo-Operation.

Es gilt in jedem Fall: Dividend = Divisor · Quotient + Rest

So ergibt sich der Rest aus den Regeln für die Division.

public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( 5%2 ); /* 1 */
java.lang.System.out.println( 3%2 ); /* 1 */
java.lang.System.out.println( 1%2 ); /* 1 */
java.lang.System.out.println( -1%2 ); /* -1 */
java.lang.System.out.println( -3%2 ); /* -1 */
java.lang.System.out.println( -5%2 ); /* -1 */ }}

Um zu testen, ob eine Zahl ungerade ist, kann man also nicht einfach testen, ob der Rest gleich 1 ist!

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723089 stefan_ram:723089 Die Modulo-Operation in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723089, slrprddef723089, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/modulo_java