Onwebcreations.Net  
Onwebcreations.Net
 
Programmation
Services Gratuits
Codes Sources
Divertissements
   

  Programmation C Haut de page

 

Opérateurs :
En C, les opérateurs sont classés selon 15 niveaux de priorité, la plus haute valant 15, et la plus faible, valant 1.

DESIGNATION SYMBOLE Priorité
Parenthèses () [] 15
Opérateur de champ .-> 15

Opérations unaires

Opérateur de cast (type) 14
Opérateur de taille sizeof() 14
Opérateur d'adresse & 14
opérateur d'indirection * 14
opérateur de négation :
arithmétique, logique, binaire
! , - , ~ 14 ,14,14
incrément / décrément ++ , -- 14
Opérations unaires
Opérateurs +/% 13
Arithmétiques +- 12
Opérateurs de décalage << , >> 11
Opérateurs de comparaison > , <=, < ,
<=, ==, !=
10,
9
Opérateurs de bit &, ^, 1/2 8,7,6
Opérateurs logiques &&,1/21/2 5,4
Opérateurs conditionnels ?, : 3
Opérateurs d'affectation =
+=
-=
*=
/=
%
>=
<=
&=
^=
1/2
 
2
Opérateur séquentiel , 1

Voyons quelques opérateurs,

Cast :
L'opérateur de transtypage (cast), permet de modifier le type de données que peut receuillir une variable.
Voici la syntaxe :
NomVar = (type) NomVar; // type correspond au nouveau type (int, float, etc.)

Voici un exemple concret :

int x;
x = (double) 3/2;
printf("%d",x); // imprime la valeur à virgule flottante : 1.5.

Sans transtypage, la valeur affichée serait 1. En effet, cela ne renvoi pas une erreur, mais la partie décimale est simplement ignorée en cas d'un type entier.

sizeof() :
cet opérateur calcule l'occupation mémoire en octets d'une variable. Voici la syntaxe de cet opérateur :

short a;
long b;
double c;

printf("%i, %i, %i",sizeof(a), sizeof(b), sizeof(c));


ceci affiche a l'écran : 2, 4, 8, car les variables occupent respectivement ces occupations mémoires.

L'opérateur d'adressage & :
Les variables possèdent une adresse mémoire unique. La donnée contenue dans une variable se trouve à l'adresse mémoire de celle-ci.

int x;
x = 560;
printf("%i",x); // Affiche la valeur numérique 560
printf("%i",&x); // Affiche l'adresse mémoire de la variable x.

Opérateurs de bits

Dans ce cas, nous travaillons sur chaque bit individuellement, et ceci exige des opérandes entiers.

OPERATEUR OPERATION EXEMPLE
Opérateurs logiques de bits
BINAIRE & connexion binaire ET x & y
| connexion binaire OU exclusif x | y
^ connexion binaire OU exclusif x ^ y
UNAIRE ~ NON binaire
(complément à 1 de x )
~x
Opérateurs de décalage
BINAIRE >> décalage de y bits vers la droite x >> y
<< décalage de y bits vers la gauche x << y

ET binaire :
Le ET ( & ) binaire renvoi 1 si les 2 bits sont positionnés ( 1 ), sinon, 0.

OU binaire :
Le OU binaire ( | ) renvoi 1 si l'un des 2 bits sont positionnés, sinon 0.
Le OU binaire ( ^ ) renvoi 1 uniquement si l'un des 2 bits est positionnés, sinon 0.

NON binaire :
Le non binaire ( ~ ) est le complément à 1 de la variable.
Il renvoi 1 si le bits n'est pas positionné ( 0 )
Et renvoi 0 si le bit est positionné ( 1 ).

Voici un tableau qui illustre ce qui vient d'être dit, on considère dans chaque cas, BIT 1 et BIT 2, puis, nous constatons :

BIT 1 BIT 2 BIT 1 & BIT 2 BIT 1 | BIT 2 BIT 1 ^ BIT 2 ~BIT 1
0 0 0 0 0 1
0 1 0 1 1 1
1 0 0 1 1 0
1 1 1 1 0 0


Opérateurs de décalage >> et << :
L'opérateur << décale vers la gauche tous les bits de l'opérande gauche, d'un nombre de positions correspondant à la valeur de l'opérande droit. Les positions binaires laissées libres sur la droite sont mises à 0.
Exemple, la constante décimale 15, de type int :
15 << 4, ce qui donne au niveau binaire :
0000000000001111 << 4, ce qui donne le résultat : 0000000011110000 ( qui est le nombre 240 ).

Notez simplement, qu'un décalage de N positions vers la gauche correspond à une multiplication par 2^N.

Il en va de même pour un décalage vers la droite ( >> ), et la règle que l'on tire est la suivante :
un décalage de N positions vers la droite correspond à une division par 2^N.



[ << Page précédente | Page suivante >> ]


 
    Haut de page
© Onwebcreations.Net : Programmation & Services Internet
Accessible aussi par : Services-Gratuits-Webmasters.com
Contacter le suppport technique
Internaute(s) actuellement sur le site.