logo

Modulo-operator (%) in C/C++ met voorbeelden

In C of C++ is de modulo-operator (ook bekend als de modulus-operator) , aangegeven met %, is een rekenkundige operator . De modulo-delingsoperator produceert de rest van een gehele deling die ook wel de modulus van de bewerking wordt genoemd.

Syntaxis van Modulus-operator

Als x en y gehele getallen zijn, dan geldt de uitdrukking:



x   %   y;>

uitgesproken als x mod y. 10% 2 wordt bijvoorbeeld uitgesproken als Ten mod Two.

Retourwaarde van Modulo-operator

  • Als y x volledig deelt, is het resultaat van de uitdrukking 0.
  • Als x niet volledig deelbaar is door y, is het resultaat de rest in het bereik [0, y-1]
  • (X % En) < (x / 2) ………als (x>= y)
  • (X % y) = x ……… als (x
  • Als y 0 is, dan deling door nul is een fout tijdens het compileren .

Voorbeeld van Modulo-operator

Hieronder vindt u het C/C++-programma om de werking van de modulo-operator te demonstreren:

C++




java-arraylijst gesorteerd





// C++ Program to demonstrate the working of modulo operator> #include> using> namespace> std;> // Driver code> int> main(>void>)> {> >int> x, y;> >int> result;> >x = 3;> >y = 4;> >// using modulo operator> >result = x % y;> >cout << result << endl;> >result = y % x;> >cout << result << endl;> >// for different values> >x = 4;> >y = 2;> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Mayank Tyagi>

>

>

C




// C Program to illustrate the working of modulo operator> #include> int> main(>void>)> {> >int> x, y;> >int> result;> >x = 3;> >y = 4;> >// using modulo operator> >result = x % y;> >printf>(>'%d'>, result);> >result = y % x;> >printf>(>' %d'>, result);> >// for different values> >x = 4;> >y = 2;> >result = x % y;> >printf>(>' %d'>, result);> >return> 0;> }>

>

>

Beperkingen op de Modulo-operator

De modulo-operator heeft weinig beperkingen of beperkingen. De % modulus-operator kan niet worden toegepast getallen met drijvende komma d.w.z. zwevend of dubbel. Als u de modulo-operator probeert te gebruiken met drijvende-kommaconstanten of variabelen, zal de compiler een fout genereren.

Voorbeeld 1: C/C++-programma om de beperkingen van de modulo-operator te demonstreren.

C++




// C++ Program to demonstrate the restrictions of modulo> // operator> #include> using> namespace> std;> // Driver code> int> main()> {> >float> x, y;> >x = 2.3;> >y = 1.5;> >// modulo for floating point values> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Harshit Srivastava>

>

>

C




// C Program to illustrate the working of modulo operator> #include> int> main(>void>)> {> >float> x, y;> >float> result;> >x = 2.3;> >y = 1.5;> >// modulo for floating point values> >result = x % y;> >printf>(>'%f'>, result);> >return> 0;> }>

>

>

Uitvoer

Compilation Error in C code :- prog.c: In function 'main': prog.c:19:16: error:  invalid operands to binary % (have 'float' and 'float')  result = x % y;  ^>

Modulo-operator voor negatieve operanden

Het teken van het resultaat voor de modulo-operator is machine-afhankelijk voor negatieve operanden, aangezien de actie plaatsvindt als gevolg van onder- of overloop.

Voorbeeld 2: C/C++-programma om de modulo-operator voor negatieve operanden te demonstreren.

C++




// C++ Program to demonstrate the working of the modulo> // operator for negative operands> #include> using> namespace> std;> // Driver code> int> main(>void>)> {> >int> x, y;> >int> result;> >x = -3;> >y = 4;> >// modulo for negative operands> >result = x % y;> >cout << result << endl;> >x = 4;> >y = -2;> >result = x % y;> >cout << result << endl;> >x = -3;> >y = -4;> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Harshit Srivastava>

>

>

C




// C Program to illustrate the working of the modulo> // operator with negative operands> #include> int> main(>void>)> {> >int> x, y;> >int> result;> >x = -3;> >y = 4;> >// modulo for negative operands> >result = x % y;> >printf>(>'%d'>, result);> >x = 4;> >y = -2;> >result = x % y;> >printf>(>' %d'>, result);> >x = -3;> >y = -4;> >result = x % y;> >printf>(>' %d'>, result);> >return> 0;> }>

>

>

Uitvoer

-3 0 -3>

Opmerking: De geretourneerde waarde is in dit geval afhankelijk van de compiler.

Veelgestelde vragen over Modulo Operator

Q1. Definieer mod.

Antwoord:

In de programmeertalen C/C++ verwijst mod naar de wiskundige bewerking waarbij het ene getal door het andere wordt gedeeld en de rest wordt geretourneerd.

Het kan worden uitgevoerd met behulp van bedieningsmodule (%) .

Vraag 2. Wat is mod-rekenkunde?

Antwoord:

Mod-rekenkunde verwijst naar het proces waarbij een getal zich zodanig rond een bepaald punt blijft wikkelen dat het altijd kleiner is dan dat bepaalde punt. Bijvoorbeeld,

Denk aan het aantal n = 10 en de punt p = 20.
Als we n 10 keer verhogen, wordt het n = 20, maar in de modulaire rekenkunde zou het kleiner moeten zijn dan het opgegeven punt.

Een manier om dat te doen is door de modulo-operator te gebruiken als:

n++; n = n % p;>

Raadpleeg het artikel voor meer informatie over modulair aritimatisch: Modulair rekenen

Q3. Wat is het verschil tussen modulo- en deeloperator?

Antwoord:

Het belangrijkste verschil tussen modulo- en delingsoperator is dat:

  • Operatormodule (%) geeft de rest terug nadat het ene getal door het andere is gedeeld.
  • Verdeel operator (/) geeft het quotiënt terug nadat het ene getal door het andere is gedeeld.