Está en la página 1de 24

OPERADORES EN C++

C++ , posee los números de operadores de C y se


les han añadido nuevos y propios de C++ los
operadores pueden agruparse en:

1. Aritméticos 6. Del preprocesador


2. De asignación 7. De referencia
3. A nivel de bits 8. Relacionales
4. Lógicos 9. Específicos de C++
5. Posfijos 10. De incremento y Disminución

11/02/2021 Mg. Edgar Ruiz Lizama 1


TABLA I: OPERADORES ARITMÉTICOS

OPERADOR SIGNIFICADO
+ Adición
- Sustracción
* Producto
/ División
% Módulo ó Resto

11/02/2021 Mg. Edgar Ruiz Lizama 2


Ejemplo: OPERADORES ARITMÉTICOS
#include <iostream>
using namespace std;

int main()
{
int x=20,y=7;

cout<<"a : "<<x<<endl;
cout<<"b : "<<y<<endl;
cout<<"La suma es: "<<(x+y)<<endl;
cout<<"La resta es: "<<(x-y)<<endl;
cout<<"La producto es: "<<(x*y)<<endl;
cout<<"El modulo o resto es: "<<(x%y)<<endl;
cout<<"La division es: "<<(x/y)<<endl;

return 0;
}

11/02/2021 Mg. Edgar Ruiz Lizama 3


EXPRESIONES DE ASIGNACIÓN

< LAD. IZQ. > <OPERADOR DE ASIGNAC. > <LAD. DER.>

LADO IZQ. OPERADOR LADO DER.


Variable = Variable
Variable = Expresión
Variable = Constante

11/02/2021 Mg. Edgar Ruiz Lizama 4


TABLA II: OPERADORES DE ASIGNACIÓN

OPERADOR EJEMPLO EQUIVALENC.


= a=b+c Exp1=Exp2
+= a+=c a=a+c
-= a-=c a=a-c
*= a*=c a=a*c
/= a/=c a=a/c
%= a%=c a=a%c

11/02/2021 Mg. Edgar Ruiz Lizama 5


EJEMPLO: EXPRESIONES DE ASIGNACIÓN

#include <iostream>
using namespace std;

int main() // Opeasig.cpp


{
int x=10,y=5;

cout<<"x= "<<x<<"\ty= "<<y<<endl;


cout<<"Valor de x+=y es: "<<(x+=y)<<endl;
cout<<"Valor de x*=y es: "<<(x*=y)<<endl;
cout<<"Valor de x/=y es: "<<(x/=y)<<endl;
cout<<"Valor de x%=y es: "<<(x%=y)<<endl;
cout<<"Valor de x+=x+y es: "<<(x+=x+y)<<endl;
cout<<"Valor de x-=x+y es: "<<(x-=x+y)<<endl;

return 0;
}

11/02/2021 Mg. Edgar Ruiz Lizama 6


TABLA II: OPERADORES DE ASIGNACIÓN
(continuación)

OPERADOR EJEMPLO EQUIVALENC.


<<= a <<= 2 a=a<<2
>> = a >> =5 a=a>>5
&= a & =b a=a&b
|= a | =b a=a|b
^= a^ =b a=a^c

11/02/2021 Mg. Edgar Ruiz Lizama 7


TABLA III: OPERADORES A NIVEL DE BITS
OPERADOR SIGNIFICADO
& AND
| OR
^ OR(Exclusivo)
<< Desplazamiento a la izquierda.
>> Desplazamiento a la derecha
~ Complemento a uno

11/02/2021 Mg. Edgar Ruiz Lizama 8


Resultados de combinar dos bits mediante los
operadores & , | , ^ .

BIT1 BIT2 BIT1 & BIT2 BIT1 | BIT2 BIT1^BIT2

0 0 0 0 0

1 0 0 1 1

0 1 0 1 1

1 1 1 1 0

11/02/2021 Mg. Edgar Ruiz Lizama 9


EJEMPLO: Uso de operadores a nivel de bits AND, OR exclusivo, OR inclusivo y el
complemento a uno
#include <iostream>

void mostrarBits(unsigned int);


using namespace std;
int main()
{
unsigned num1, num2,mask;
num1=32767;
mask=1;
cout<<"\nEl resultado de combinar lo siguiente:\n";
mostrarBits(num1);
mostrarBits(mask);
cout<<"Usando operadores a nivel de bits AND & es: \n";
mostrarBits(num1 & mask);
cout<<"\nEl resultado de combinar lo siguiente:\n";
mostrarBits(num1);
mostrarBits(mask);
cout<<"Usando operadores a nivel de bits OR | inclusivo es: \n";
mostrarBits(num1 | mask);
num1=100;
num2=1000;
cout<<"\nEl resultado de combinar lo siguiente:\n";
mostrarBits(num1);
mostrarBits(num2);

11/02/2021 Mg. Edgar Ruiz Lizama 10


EJEMPLO: CONTINUACION
cout<<"Usando operadores a nivel de bits OR ^ exclusivo es: \n";
mostrarBits(num1 ^ num2);
num1=65535;
cout<<"complemento a uno de:\n ";
mostrarBits(num1);
cout<<"es\n";
mostrarBits(~num1);

return 0;
}
void mostrarBits(unsigned valor)
{
unsigned i,displayMask=1<<15;
cout<<valor<<" = ";
for(i=1; i<=16;i++)
{
cout<<(valor & displayMask? '1' : '0');
valor <<=1;
if(i%8==0)
cout<<' ';
}
cout<<"\n";
}

11/02/2021 Mg. Edgar Ruiz Lizama 11


EJEMPLO: Uso de los operadores a nivel de bits desplazamiento a la izquierda << y a
la derecha a nivel de bits: <<, >>
#include <iostream>

void mostrarBits(unsigned);
using namespace std;
int main()
{
unsigned num1=1100;
cout<<"\nEl resultado de desplazar a la izquierda \n";
mostrarBits(num1);
cout<<"8 posiciones usando el operador de";
cout<<" desplazamiento a la izquierda << es:\n ";
mostrarBits(num1<<8);
cout<<"\nEl resultado de desplazar a la izquierda \n";
mostrarBits(num1);
cout<<"8 posiciones usando el operador de";
cout<<" desplazamiento a la derecha >> es:\n ";
mostrarBits(num1>>8);
return 0;
}

11/02/2021 Mg. Edgar Ruiz Lizama 12


Ejemplo: continuación
void mostrarBits(unsigned valor)
{
unsigned i,displayMask=1<<15;
cout<<valor<<" = ";
for(i=1; i<=16;i++)
{
cout<<(valor & displayMask? '1' : '0');
valor <<=1;
if(i%8==0)
cout<<' ';
}
cout<<"\n";
}

11/02/2021 Mg. Edgar Ruiz Lizama 13


TABLA IV: OPERADORES LÓGICOS
OPERADOR SIGNIFICADO
&& AND
|| OR
!= NOT

NOTA: El resultado de aplicar un operador lógico o un


operador relacional es un valor booleano; es decir
FALSE ( 0 ) ó es TRUE ( 1 )
11/02/2021 Mg. Edgar Ruiz Lizama 14
EJEMPLO: OPERADORES LÓGICOS
#include <iostream>

#define TRUE 1
#define FALSE !TRUE

int and_logico(int x,int y, int z);


int or_logico(int x,int y, int z);
int negacion_logico(int x,int y);
using namespace std;
int main()//opelogi.cpp
{
int a=3, b=4, c=5;
cout<<"a= "<<a<<" b= "<<b<<" c= "<<c<<endl;
cout<<" c>b>a : "<<and_logico(a,b,c)<<endl;
cout<<" c>a o c>b : "<<or_logico(a,b,c)<<endl;
cout<<" no(b>a) : "<<negacion_logico(a,b)<<endl;
return 0;
}

11/02/2021 Mg. Edgar Ruiz Lizama 15


CONTINUACION
int and_logico(int x,int y, int z)
{
if((z>y)&&(y>x))
return TRUE;
else
return FALSE;
}
int or_logico(int x,int y, int z)
{
if((z>x)&&(z>y))
return TRUE;
else
return FALSE;
}
int negacion_logico(int x,int y)
{
if(!(y>x))
return TRUE;
else
return FALSE;
}

11/02/2021 Mg. Edgar Ruiz Lizama 16


TABLA V: OPERADORES POSFIJOS Y PREFIJOS

OPERADORES NOTACIÓN EJEMPLO

PREFIJOS <Operador> <Variable> ++x;

POSFIJOS <Variable> <Operador> x++;

11/02/2021 Mg. Edgar Ruiz Lizama 17


TABLA VI: DEL PREPROCESADOR
OPERADOR SIGNIFICADO

new Crear o asignar memoria.


Desasignar memoria ó liberar
delete
memoria.
delete[] Liberar memoria de un array.

throw Manejo de excepciones.

11/02/2021 Mg. Edgar Ruiz Lizama 18


TABLA VII: OPERADORES REFERENCIA

Los operadores de referencia son:

OPERADOR SIGNIFICADO EJEMPLO


Otorga la dirección de
& x=&y;
memoria de una variable
Permite declarar una
* int *x;
variable como puntero

11/02/2021 Mg. Edgar Ruiz Lizama 19


TABLA VIII: OPERADORES RELACIONALES

OPERADOR SIGNIFICADO EJEMPLO


== Igualdad. a==b
!= Diferente a!=b
> Mayor que a>b
< Menor que a<b
>= Mayor Igual a>=b
<= Menor Igual a<=b

11/02/2021 Mg. Edgar Ruiz Lizama 20


EJEMPLO: HALLAR EL MAYOR DE DOS ENTEROS
#include <iostream>
int mayor(int x,int y);

using namespace std;


int main()
{
int a,b;
cout<<"Ingrese dos enteros: "<<endl;
cin>>a>>b;
cout<<"El mayor es: "<<mayor(a,b)<<endl;
return 0;
}

int mayor(int x,int y)


{
if(x>y)
return x;
else
return y;
}

11/02/2021 Mg. Edgar Ruiz Lizama 21


TABLA X: OPERADORES DE INCREMENTO Y
DISMINUCIÓN

OPERADOR SIGNIFICADO

++ Incremento en 1

-- Disminución en 1

NOTA: Los operadores de incremento y disminución


pueden ser: Prefijos como ++x; o posfijos como x++;

11/02/2021 Mg. Edgar Ruiz Lizama 22


Ejemplo: OPERADORES DE INCREMENTO O
DISMINUCION
#include <iostream>

using namespace std;


int main()
{
int x=20,y=7;
cout<<"a : "<<x<<endl;
cout<<"b : "<<y<<endl;
cout<<"incremento en uno para x: "<<(++x)<<endl;
cout<<"decremento en uno para x: "<<(--y)<<endl;

return 0;
}

11/02/2021 Mg. Edgar Ruiz Lizama 23


Referencias
 Deitel H.M. y Deitel P.J., (2008). “Como Programar en C/C++ ".
México, 6ta. ed. Prentice Hall.
 Kernighan Brian W. & Ritchie Dennis M. (1993) “El Lenguaje de
Programación C”. 2da. Edición. Prentice-Hall Hispanoamericana,
294 p. México.
 Parker Alan, (1993). "Algorithms and Data Structures in C++ ". USA
CRC Press: 257p.
Ruiz Lizama Edgar, (2009). “Programación con C++". Lima, 1ra.
Edición, Fondo Editorial UNMSM: 434p.
 Ruiz Lizama Edgar, (1999). "Curso de Lenguaje C". Lima, Facultad
de Ingeniería Industrial UNMSM: 234p.
 Staguaard, Andrew (1998) "Técnicas estructuradas y orientadas a
objetos: una introducción utilizando C++". México. Prentice-Hall
Hispanoamericana, 770 p. México.
 Stroustrup, Bjarne (2002) "El Lenguaje de Programación C++
Edición especial". Addison Wesley – PEARSON EDUCACION S.A.
1050 p. España. 

11/02/2021 Mg. Edgar Ruiz Lizama 24

También podría gustarte