Looking for my blog ? Click here !
Vous cherchez mon blog ? Cliquez ici !

Bonjour,

Aujourd'hui nous allons voir quelque opérateurs que vous allez utiliser très souvent et qu'il est donc très important de maitriser.

L'opérateur sizeof() :
Vous avez vu au chapitre 2 qu'il existe beaucoup de types de données et qu'il faut choisir judicieusement chaque type. A chaque type de donnée, votre ordinateur attribue une taille en octets. Cette taille va de même varié en fonction de votre ordinateur et du compilateur que vous utilisez pour compiler vos petites créations...

Alors comment savoir la taille emprunté par un type de donnée? L'opérateur sizeof() résout ce problème en vous renvoyant la taille en octets du type donné en argument.

Voici un petit programme qui vous donne la taille de plusieurs type sur VOTRE machine:

int main(){
printf("Taille d'un char: %d octets",sizeof(char));
printf("Taille d'un entier court: %d octets",sizeof(short));
printf("Taille d'un entier: %d octets",sizeof(int));
printf("Taille d'un long: %d octets",sizeof(long));
printf("Taille d'un unsigned int: %d octets",sizeof(unsigned int));
printf("Taille d'un double: %d octets",sizeof(double));
}



Les opérateurs logiques :
Programmer c'est, vous allez vite vous en rendre compte, prendre en compte tout les cas et surtout les erreurs. Et donc c'est beaucoup de tests! Il est donc bien utile d'avoir sous la main plusieurs opérateurs logique avec lesquels se débrouiller:

  • l'opérateur ET: &&

  • l'opérateur OU: ||

  • l'opérateur NON: !

  • l'opérateur EGAL: ==

  • l'opérateur DIFFERENT: !=


A savoir qu'en C il n'y a pas de type booléen, et tout entier non nul est considérer comme VRAI et FAUX correspond à 0 (C'est nul d'être faux...ok c'est nul ;-) ).
Voici quelques exemples :
1==1 //vrai
1!=1 //faux
(1==1)&&(1!=1) //faux
(1==1)||(1!=1) //Vraiment vrai!
(1==1)&& !(1!=1) //vrai (opérateur: !)


Les opérateurs binaires:
Ceux ci vous permettent d'agir directement sur les bits des valeurs contenues dans vos variables. Ils ressemblent beaucoup au opérateurs logiques, ce sont les mêmes exceptés qu'ils ne sont pas dédoublés.
Ces opérateurs vous permettent par exemple de stocker des status dans un seul entier plutôt que de définir 8 variables... Aussi ca permet de calculer des puissances de 2 très rapidement... C'est pas clair ? Allez, déjà je vous les présente:

  • l'opérateur bit à bit ET: &

  • l'opérateur bit à bit OU: |

  • l'opérateur bit à bit de complément: ~

  • l'opérateur bit à bit de décalage droit: >>

  • l'opérateur bit à bit de décalage gauche: <<


Maintenant des exemples. Prenez par exemple 13, en binaire ca fait :0001101.
printf("%i",13&2); //nous affiche (00001101&00000010) = 0000000= 0
printf("%i",13!2); //nous affiche (00001101!00000010) = 00001111=15
printf("%i",~13); //nous affiche (00001101) = 0000010= 2


Et maintenant des décalages à gauche et droite:
printf("%i",1<<3); //nous affiche (00000001<<3) = 00001000= 8 (tiens 2 puissance 8)
printf("%i",8>>2); //nous affiche (00001000!00000010) = 2


Ainsi on voit que vous pouvez utilisez un seul bits pour chaque statut et faire des tests bit à bits...


L'opérateur conditionel:
Celui ci est relativement utile, il permet de condenser le code en certains endroits pour des test divers. Il est sous la forme:
( test )?x:y

Ce qui correspond à si test est vrai alors x sinon y.

Cela est très utile pour l'assignation conditionnelle de variables, voici quelques exemples:
int i=10;
int j=(10==3)?2:6 //Assigne 6 à j
int k=(10==10)?2:6 //Assigne 2 à k



Voila c'est finit ! N'hésitez pas à poser des questions sur le forum.



Article rédigé par:  Jmix 90    le: 09/07/2007

    
Soyez le premier à laisser un commentaire sur cet article !

Le langage C : C: 04 - Les opérateurs utiles.
 
Déjà 43470 visiteurs,  Votre IP :54.80.93.234