logo

Operador de módulo (%) en C/C++ con ejemplos

En C o C++, el operador de módulo (también conocido como operador de módulo) , denotado por %, es un operador aritmético . El operador de división de módulo produce la resto de una división de números enteros que también se llama módulo de la operación.

Sintaxis del operador de módulo

Si xey son números enteros, entonces la expresión:



x   %   y;>

pronunciado como x mod y. Por ejemplo, 10 % 2 se pronunciará como Diez mod Dos.

Valor de retorno del operador de módulo

  • Si y divide completamente a x, el resultado de la expresión es 0.
  • Si x no es completamente divisible por y, entonces el resultado será el resto en el rango [0, y-1]
  • (X % y) < (x / 2) ………si (x>= y)
  • (X % y) = x ……… si (x
  • Si y es 0, entonces división por cero es un error en tiempo de compilación .

Ejemplo de operador de módulo

A continuación se muestra el programa C/C++ para demostrar el funcionamiento del operador de módulo:

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


longitud de la cadena bash



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

>

>

Restricciones al operador de módulo

El operador de módulo tiene pocas restricciones o limitaciones. El Operador de módulo % no se puede aplicar a Números de punto flotante es decir, flotante o doble. Si intenta utilizar el operador de módulo con constantes o variables de punto flotante, el compilador producirá un error.

Ejemplo 1: programa C/C++ para demostrar las restricciones del operador de módulo.

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

>

>

Producción

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

Operador de módulo para operandos negativos

El signo del resultado para el operador de módulo depende de la máquina para operandos negativos, ya que la acción se produce como resultado de un desbordamiento insuficiente o excesivo.

Ejemplo 2: programa C/C++ para demostrar el operador de módulo para operandos negativos.

C++


declaración de cambio java



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

>

>

Producción

-3 0 -3>

Nota: El valor de retorno en este caso depende del compilador.

Preguntas frecuentes sobre el operador de módulo

P1. Definir mod.

Respuesta:

En los lenguajes de programación C/C++, mod se refiere a la operación matemática en la que un número se divide por otro y se devuelve el resto.

Se puede realizar usando modulo operator (%) .

P2. ¿Qué es la aritmética mod?

Respuesta:

La aritmética mod se refiere al proceso en el que un número sigue girando alrededor de un punto determinado de tal manera que siempre es menor que ese punto determinado. Por ejemplo,

considere el numero norte = 10 y el punto p = 20.
Cuando incrementamos n 10 veces, será n = 20, pero en aritmética modular, debería ser menor que el punto especificado.

Una forma de hacerlo es utilizar el operador de módulo como:

n++; n = n % p;>

Para obtener más información sobre la aritmética modular, consulte el artículo: Aritmática modular

P3. ¿Cuál es la diferencia entre módulo y operador de división?

Respuesta:

La principal diferencia entre operador de módulo y división es que:

  • Modulo Operator (%) devuelve el resto después de dividir un número con otro.
  • Operador de división (/) devuelve el cociente después de dividir un número con otro.