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.