Modulo-operatør (%) i C/C++ med eksempler

I C eller C++ er modulo-operator (også kjent som modulus-operatoren) , betegnet med %, er en aritmetisk operator . Modulo-divisjonsoperatøren produserer rest av en heltallsdivisjon som også kalles operasjonsmodulen.

Syntaks for Modulus Operator

Hvis x og y er heltall, så er uttrykket:

x   %   y; 

uttales som x mod y. For eksempel vil 10 % 2 bli uttalt som Ten mod Two.

Returverdi for Modulo Operator

  • Hvis y deler x fullstendig, er resultatet av uttrykket 0.
  • Hvis x ikke er helt delelig med y, vil resultatet være resten i området [0, y-1]
  • (x % og) < (x / 2) …hvis (x>= y)
  • (x % y) = x ……… hvis (x
  • Hvis y er 0, da divisjon med null er en kompileringstidsfeil .

Eksempel på Modulo Operator

Nedenfor er C/C++-programmet for å demonstrere hvordan modulo-operatøren fungerer:

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;> }>

Begrensninger på Modulo-operatøren

Modulo-operatøren har få begrensninger eller begrensninger på seg. De % moduloperator kan ikke brukes på flyttallstall dvs. flyte eller dobbel. Hvis du prøver å bruke modulo-operatoren med flyttallskonstanter eller variabler, vil kompilatoren produsere en feil.

Eksempel 1: C/C++-program for å demonstrere begrensningene til modulo-operatøren.

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;> }>

Produksjon

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-operatør for negative operander

Resultattegnet for modulo-operatøren er maskinavhengig for negative operander, ettersom handlingen skjer som følge av underflyt eller overløp.

Eksempel 2: C/C++-program for å demonstrere modulo-operatoren for negative operander.

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;> }>

Produksjon

-3 0 -3 

Merk: Returverdien i dette tilfellet er kompilatoravhengig.

Vanlige spørsmål om Modulo Operator

Q1. Definer mod.

Svar:

I C/C++ programmeringsspråk refererer mod til den matematiske operasjonen der ett tall deles på et annet, og resten returneres.

Det kan utføres ved hjelp av modulo operatør (%) .

Q2. Hva er mod-aritmetikk?

Svar:

Mod-aritmetikk refererer til prosessen der et tall fortsetter å vikle seg rundt et bestemt punkt på en slik måte at det alltid er mindre enn det bestemte punktet. For eksempel,

Tenk på antallet n = 10 og punkt p = 20.
Når vi øker n 10 ganger, vil det være n = 20, men i modulær aritmetikk bør det på en måte være mindre enn det angitte punktet.

En måte å gjøre det på er å bruke modulo-operatoren som:

n++; n = n % p; 

For å lære mer om modulær aritmatisk, se artikkelen – Modulær aritmatisk

Q3. Hva er forskjellen mellom modulo og divide operator?

Svar:

Den største forskjellen mellom modulo og divisjonsoperatør er at:

  • Operatørmodul (%) returnerer resten etter å ha delt ett tall med et annet.
  • Del operatør (/) returnerer kvotienten etter å ha delt ett tall med et annet.