logo

Operatore Modulo (%) in C/C++ con esempi

In C o C++, il operatore modulo (noto anche come operatore modulo) , indicato con %, è un operatore aritmetico . L'operatore di divisione modulo produce il resto di una divisione intera detta anche modulo dell'operazione.

Sintassi dell'operatore modulo

Se xey sono numeri interi, l'espressione:



x   %   y;>

pronunciato come x modo y. Ad esempio, 10% 2 verrà pronunciato come Ten mod Two.

Valore restituito dall'operatore modulo

  • Se y divide completamente x, il risultato dell'espressione è 0.
  • Se x non è completamente divisibile per y, il risultato sarà il resto nell'intervallo [0, y-1]
  • (X % E) < (x / 2) ………se (x>= y)
  • (X % y) = x ……… se (x
  • Se y è 0, allora divisione per zero è un errore in fase di compilazione .

Esempio di operatore modulo

Di seguito è riportato il programma C/C++ per dimostrare il funzionamento dell'operatore modulo:

C++




coda di priorità Java





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

>

>

Restrizioni sull'operatore Modulo

L'operatore modulo presenta poche restrizioni o limitazioni. IL Operatore modulo % non può essere applicato a numeri in virgola mobile cioè float o double. Se si tenta di utilizzare l'operatore modulo con costanti o variabili a virgola mobile, il compilatore genererà un errore.

hashmap in Java

Esempio 1: programma C/C++ per dimostrare le restrizioni dell'operatore modulo.

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

>

>

Produzione

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

Operatore modulo per operandi negativi

Il segno del risultato per l'operatore modulo dipende dalla macchina per gli operandi negativi, poiché l'azione avviene come risultato di underflow o overflow.

Esempio 2: programma C/C++ per dimostrare l'operatore modulo per operandi negativi.

C++

immagine di ribasso




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

>

>

formica contro esperto
Produzione

-3 0 -3>

Nota: Il valore restituito in questo caso dipende dal compilatore.

Domande frequenti su Modulo Operator

Q1. Definire mod.

Risposta:

Nei linguaggi di programmazione C/C++, mod si riferisce all'operazione matematica in cui un numero viene diviso per un altro e viene restituito il resto.

Può essere eseguito utilizzando modulo operatore (%) .

Q2. Cos'è l'aritmetica mod?

Risposta:

L'aritmetica mod si riferisce al processo in cui un numero continua ad avvolgersi attorno a un certo punto in modo tale che sia sempre inferiore a quel determinato punto. Per esempio,

Considera il numero n = 10 e il punto p = 20.
Quando incrementiamo n 10 volte, sarà n = 20 ma nell'aritmetica modulare dovrebbe essere molto più piccolo del punto specificato.

Un modo per farlo è utilizzare l'operatore modulo come:

n++; n = n % p;>

Per saperne di più sull'aritimatica modulare, fare riferimento all'articolo – Aritmatica modulare

Q3. Qual è la differenza tra operatore modulo e operatore di divisione?

Risposta:

La differenza principale tra operatore modulo e operatore di divisione è che:

  • Modulo operatore (%) restituisce il resto dopo aver diviso un numero con un altro.
  • Operatore di divisione (/) restituisce il quoziente dopo aver diviso un numero con un altro.