En C ou C++, le opérateur modulo (également appelé opérateur module) , noté %, est un opérateur arithmétique . L'opérateur de division modulo produit le reste d'une division entière qui est aussi appelée module de l'opération.
Syntaxe de l'opérateur de module
Si x et y sont des nombres entiers, alors l'expression :
x % y;>
prononcé comme x mod y. Par exemple, 10 % 2 sera prononcé comme Ten mod Two.
Valeur de retour de l'opérateur modulo
- Si y divise complètement x, le résultat de l’expression est 0.
- Si x n'est pas complètement divisible par y, alors le résultat sera le reste dans la plage [0, y-1]
- (X % et) < (x / 2) ………si (x>= y)
- (X % y) = x ……… si (x
- Si y vaut 0, alors division par zéro est un erreur de compilation .
Exemple d'opérateur Modulo
Vous trouverez ci-dessous le programme C/C++ pour démontrer le fonctionnement de l'opérateur modulo :
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;> }> |
c'est en python
>
>
Restrictions sur l'opérateur Modulo
L'opérateur modulo a peu de restrictions ou de limitations. Le Opérateur % module ne peut pas être appliqué à nombres à virgule flottante c'est-à-dire flotter ou double. Si vous essayez d'utiliser l'opérateur modulo avec des constantes ou des variables à virgule flottante, le compilateur produira une erreur.
Exemple 1 : programme C/C++ pour démontrer les restrictions de l'opérateur 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> |
vlc télécharger youtube
>
>
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;> }> |
>
>
Sortir
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; ^>
Opérateur modulo pour les opérandes négatifs
Le signe du résultat pour l'opérateur modulo dépend de la machine pour les opérandes négatifs, car l'action résulte d'un dépassement inférieur ou supérieur.
Exemple 2 : programme C/C++ pour démontrer l'opérateur modulo pour les opérandes négatifs.
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> |
>
>
compte distinct
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;> }> |
>
>Sortir
-3 0 -3>
Note: La valeur de retour dans ce cas dépend du compilateur.
FAQ sur l'opérateur Modulo
T1. Définir le mod.
Répondre:
Dans les langages de programmation C/C++, mod fait référence à l'opération mathématique dans laquelle un nombre est divisé par un autre et le reste est renvoyé.
Elle peut être réalisée en utilisant module opérateur (%) .
Q2. Qu’est-ce que l’arithmétique mod ?
Répondre:
L'arithmétique mod fait référence au processus dans lequel un nombre continue de s'enrouler autour d'un certain point de telle manière qu'il est toujours inférieur à ce certain point. Par exemple,
Considérez le nombre n = 10 et le point p = 20.
Lorsque nous incrémentons n 10 fois, ce sera n = 20 mais en arithmétique modulaire, il devrait être plus petit que le point spécifié.Une façon de procéder consiste à utiliser l'opérateur modulo comme :
n++; n = n % p;>Pour en savoir plus sur l'aritimatique modulaire, reportez-vous à l'article - Arithmatique modulaire
Q3. Quelle est la différence entre l’opérateur modulo et l’opérateur diviser ?
Répondre:
La principale différence entre l'opérateur modulo et l'opérateur de division est la suivante :
- Module opérateur (%) renvoie le reste après avoir divisé un nombre par un autre.
- Opérateur de division (/) renvoie le quotient après avoir divisé un nombre par un autre.