Programmation en C++ – Les opérateurs

Un opérateur est un symbole qui indique au compilateur d’effectuer des fonctions mathématiques ou logiques spécifiques. Le langage C++ intègre plusieurs opérateurs et fournit les types d’opérateurs suivants:

  • Opérateurs arithmétiques
  • Opérateurs relationnels
  • Opérateurs logiques
  • Opérateurs bit à bit
  • Opérateurs d’affectation
  • Autres opérateurs

Dans ce chapitre, nous allons voir le fonctionnement de chaque opérateur.
 
 

Opérateurs arithmétiques

Le tableau suivant présente tous les opérateurs arithmétiques supportés par le langage C++. Supposons que la variable A contenant la valeur 10 et que la variable B contenant la valeur 20.

Opérateur Description Exemple
+ La somme A + B = 30
La soustraction A − B = 10
La multiplication A ∗ B = 200
La division B ∕ A = 2
% Modulo c’est le reste d’une division entier. B % A = 0
++ Opérateur d’incrémentation qui consiste à ajouter 1 à une variable. A++ = 11
Opérateur de décrémentation qui consiste à retirer 1 à une variable. A– = 9
Exemple

Essayez l’exemple suivant pour comprendre tous les opérateurs arithmétiques disponibles dans C++

#include <iostream>
using namespace std;

main() {

   int a = 21;
   int b = 10;
   int c ;

   c = a + b;
   cout <<"Ligne 1 - La valeur de c est " << c <<endl;
 
   c = a - b;
   cout <<"Ligne 2 - La valeur de c est " << c <<endl;
 
   c = a * b;
   cout <<"Ligne 3 - La valeur de c est " << c <<endl; 

   c = a / b;
   cout <<"Ligne 4 - La valeur de c est " << c <<endl;
 
   c = a % b;
   cout <<"Ligne 5 - La valeur de c est " << c <<endl;
 
   c = a++; 
   cout <<"Ligne 6 - La valeur de c est " << c <<endl;
 
   c = a--; 
   cout <<"Ligne 7 - La valeur de c est " << c <<endl;
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - La valeur de c est 31
Ligne 2 - La valeur de c est 11
Ligne 3 - La valeur de c est 210
Ligne 4 - La valeur de c est 2
Ligne 5 - La valeur de c est 1
Ligne 6 - La valeur de c est 21
Ligne 7 - La valeur de c est 22

 
 

Opérateurs relationnels

Le tableau suivant montre tous les opérateurs relationnels supportés par C++. Supposons que la variable A contenant la valeur 10 et la variable B contenant la valeur 20 donc

Opérateur Description Exemple
== Vérifie si les deux opérandes sont égales ou non. Si oui, alors la condition vraie. (A == B) est faux.
!= Vérifie si les deux opérandes sont égales ou non. Si les valeurs ne sont pas égales, la condition est vraie. (A != B) est vrai.
> Vérifie si la valeur de l’opérande gauche est supérieure à la valeur de l’opérande droit. Si oui, alors la condition devient vraie. (A > B) est faux.
< Vérifie si la valeur de l’opérande gauche est inférieure à la valeur de l’opérande droit. Si oui, alors la condition devient vraie. (A < B) est vrai.
>= Vérifie si la valeur de l’opérande gauche est supérieure ou égale à la valeur de l’opérande droit. Si oui, alors la condition devient vraie. (A >= B) est faux.
<= Vérifie si la valeur de l’opérande gauche est inférieure ou égale à la valeur de l’opérande droit. Si oui, alors la condition devient vraie. (A <= B) est vrai.
Exemple

Essayez l’exemple suivant pour comprendre tous les opérateurs relationnels disponibles en C++

#include <iostream>
using namespace std;

main() {

   int A = 21;
   int B = 10;

   if( A == B ) {
       cout << "Ligne 1 - A est egale de B" <<endl;
   }
   else {
       cout << "Ligne 1 - A est different de B" <<endl;
   }
 
   if ( A < B ) {
      cout << "Ligne 2 - A est inferieur de B" <<endl;
   }
   else {
      cout << "Ligne 2 - A n est pas inferieur de B" <<endl;
   }
 
   if ( A > B ) {
      cout << "Ligne 3 - A est superieur de B" <<endl;
   }
   else {
      cout << "Ligne 3 - A est non superieur de B" <<endl;
   }
   
   /* On Change la valeur de A et B */
   A = 5;
   B = 20;
 
   if ( A <= B ) {
      cout << "Ligne 4 - A est inferieur ou egal de B" <<endl;
   }
 
   if ( B >= A ) {
      cout << "Ligne 5 - B est superieur ou egal de A" <<endl;
   }
} 

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - A different de B
Ligne 2 - A n est pas inferieur de B
Ligne 3 - A est superieur de B
Ligne 4 - A est inferieur ou egal de B
Ligne 5 - B est superieur ou egal de A

 
 

Opérateurs logiques

Le tableau suivant montre tous les opérateurs logiques pris en charge par le langage C++. Supposons que la variable A contenant la valeur 1 et la variable B contenant la valeur 0.

Opérateur Description Exemple
&& Opérateur logique AND. Si les deux opérandes ne sont pas égaux à zéro, la condition devient vraie. (A && B) est faux.
|| Opérateur logique OR. Si l’un des deux opérandes est non nul, la condition devient vraie. (A || B) est vrai.
! Opérateur logique NOT. Il est utilisé pour inverser l’état logique de son opérande. Si une condition est vraie, l’opérateur NOT le rendra faux. !(A && B) est vrai.
Exemple

Essayez l’exemple suivant pour comprendre tous les opérateurs logiques disponibles dans C++

#include <iostream>
using namespace std;

main() {

   int A = 5;
   int B = 20;

   if ( A && B ) {
      cout << "Line 1 - La condition est vraie" << endl;
   }
 
   if ( A || B ) {
      cout << "Line 2 - La condition est vraie" << endl;
   }
   
   /* On Change la valeur de a et b */
   A = 0;
   B = 10;
 
   if ( A && B ) {
      cout << "Line 3 - La condition est vraie" << endl;
   }
   else {
      cout << "Line 3 - La condition n'est pas vraie" << endl;
   }
 
   if ( !(A && B) ) {
      cout << "Line 4 - La condition est vraie" << endl;
   }
 
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - La condition est vraie
Ligne 2 - La condition est vraie
Ligne 3 - La condition n'est pas vraie
Ligne 4 - La condition est vraie

 

Opérateurs bit à bit

L’opérateur bit à bit fonctionne sur les bits et exécute l’opération bit par bit. Les tables de vérité pour &,, et ^ sont les suivantes

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Supposons A = 60 et B = 13 en format binaire, ils seront comme suit –

A = 0011 1100

B = 0000 1101

—————–

A & B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

Essayez l’exemple suivant pour comprendre tous les opérateurs bit à bit disponibles dans C++

#include <iostream>
using namespace std;

main() {

   unsigned int a = 60; /* 60 = 0011 1100 */  
   unsigned int b = 13; /* 13 = 0000 1101 */
   int c = 0;           

   c = a & b;       /* 12 = 0000 1100 */ 
   cout << "Ligne 1 - Valeur de c est " << c <<endl;

   c = a | b;       /* 61 = 0011 1101 */
   cout << "Ligne 2 - Valeur de c est " << c <<endl;

   c = a ^ b;       /* 49 = 0011 0001 */
   cout << "Ligne 3 - Valeur de c est " << c <<endl;

   c = ~a;          /*-61 = 1100 0011 */
   cout << "Ligne 4 - Valeur de c est " << c <<endl;

   c = a << 2;     /* 240 = 1111 0000 */
   cout << "Ligne 5 - Valeur de c est " << c <<endl;

   c = a >> 2;     /* 15 = 0000 1111 */
   cout << "Ligne 6 - Valeur de c est " << c <<endl;
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - La valeur de c est 12
Ligne 2 - La valeur de c est 61
Ligne 3 - La valeur de c est 49
Ligne 4 - La valeur de c est -61
Ligne 5 - La valeur de c est 240
Ligne 6 - La valeur de c est 15

 
 

Opérateurs d’affectation

Le tableau suivant représente les opérateurs d’affectation pris en charge par le langage C++

Opérateur Description Exemple
= Opérateur d’affectation simple. Affecte les valeurs des opérandes de droite à l’opérande de gauche C = A + B assignera la valeur de A + B à C
+= Il ajoute l’opérande droit à l’opérande gauche et affecte le résultat à l’opérande gauche. C += A est équivalent à C = C + A
-= Il soustrait l’opérande droit de l’opérande gauche et affecte le résultat à l’opérande gauche. C -= A est équivalent à C = C – A
*= Il multiplie l’opérande droit par l’opérande gauche et attribue le résultat à l’opérande gauche. C *= A est équivalent à C = C * A
/= Il divise l’opérande gauche par l’opérande droit et affecte le résultat à l’opérande gauche. C /= A est équivalent à C = C / A
%= Il prend le modulo en utilisant deux opérandes et attribue le résultat à l’opérande gauche. C %= A est équivalent à C = C % A
<<= Opérateur de décalage à gauche. C <<= 2 est identique à C = C << 2
>>= Opérateur de décalage à droite C >>= 2 est identique à C = C >> 2
&= Opérateur bit à bit. C &= 2 est identique à C = C & 2
^= Opérateur OU exclusif bit à bit. C ^= 2 est identique à C = C ^ 2
|= Opérateur OU inclusive bit à bit. C |= 2 est identique à C = C | 2
Exemple

Essayez l’exemple suivant pour comprendre tous les opérateurs d’affectation disponibles en C++

#include <iostream>
using namespace std;

main() {

   int a = 21;
   int c ;

   c =  a;
   cout << "Ligne 1 - Exemple de l operateur  = , Value of c = " << c << endl;

   c +=  a;
   cout << "Ligne 2 - Exemple de l operateur  +=, Valeur de c = " << c << endl;

   c -=  a;
   cout << "Ligne 3 - Exemple de l operateur  -=, Valeur de c = " << c << endl;

   c *=  a;
   cout << "Ligne 4 - Exemple de l operateur  *=, Valeur de c = " << c << endl;

   c /=  a;
   cout << "Ligne 5 - Exemple de l operateur  /= , Valeur de c = " << c << endl;

   c  = 200;
   c %=  a;
   cout << "Ligne 6 - Exemple de l operateur  %=, Valeur de c = " << c << endl;

   c <<=  2;
   cout << "Ligne 7 - Exemple de l operateur  <<= , Valeur de c = " << c << endl;

   c >>=  2;
   cout << "Ligne 8 - Exemple de l operateur  >>=, Valeur de c = " << c << endl;

   c &=  2;
   cout << "Ligne 9 - Exemple de l operateur  &=, Valeur de c = " << c << endl;

   c ^=  2;
   cout << "Ligne 10 - Exemple de l operateur  ^=, Valeur de c  " << c << endl;

   c |=  2;
   cout << "Ligne 11 - Exemple de l operateur  |=, Valeur de c = " << c << endl;

} 

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 -  Exemple de l operateur =, valeur de c = 21
Ligne 2 -  Exemple de l operateur + =, valeur de c = 42
Ligne 3 -  Exemple de l operateur - =, valeur de c = 21
Ligne 4 -  Exemple de l operateur * =, valeur de c = 441
Ligne 5 -  Exemple de l operateur / =, valeur de c = 21
Ligne 6 -  Exemple de l operateur % =, valeur de c = 11
Ligne 7 -  Exemple de l operateur << =, valeur de c = 44
Ligne 8 -  Exemple de l operateur >> =, valeur de c = 11
Ligne 9 -  Exemple de l operateur & =, valeur de c = 2
Ligne 10 - Exemple de l operateur ^ =, valeur de c = 0
Ligne 11 - Exemple de l operateur | =, valeur de c = 2

 
 

Opérateurs sizeof et ternaire

Outre les opérateurs examinés ci-dessus, il existe quelques autres opérateurs importants dont sizeof et ? : sont pris en charge par le langage C++.

Opérateur Description Exemple
sizeof() Renvoie la taille d’une variable. sizeof(a), (a doit être un entier), si le cas il retournera 4.
& Renvoie l’adresse d’une variable. &a; Renvoie l’adresse de la variable a.
* Pointeur sur une variable. *a;
? : Expression conditionnelle. If Condition est vraie ? donc la valeur X : sinon la valeur Y

Essayez l’exemple suivant pour comprendre tous les opérateurs divers disponibles en C++

#include <iostream>
using namespace std;

main() {

   int a = 4;
   short b;
   double c;
   int* ptr;

   /* Exemple de taille de l operateur sizeof */
   cout << "Ligne 1 - Taille de la variable a= " << sizeof(a) <<endl;
   cout << "Ligne 2 - Taille de la variable b = " << sizeof(b) <<endl;
   cout << "Ligne 3 - Taille de la variable c= " << sizeof(c) <<endl;

   /*  Exemple de l'operateur & et l operateur *  */ 
   ptr = &a; /* 'Ptr' contient maintenant l'adresse de 'a' */
   cout << "valeur de a est" << a <<endl;
   cout << "*ptr est " << *ptr <<endl;

   /* Exemple de l operateur ternaire */
   a = 10;
   b = (a == 1) ? 20: 30;
   cout << "La valeur de b est  " << b <<endl;

   b = (a == 10) ? 20: 30;
   cout << "La valeur de b est  " << b <<endl;
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant

Ligne 1 - Taille de la variable a = 4
Ligne 2 - Taille de la variable b = 2
Ligne 3 - Taille de la variable c = 8
Valeur de a est 4
* Ptr est 4.
La valeur de b est 30
La valeur de b est 20

 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *