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++




// 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.