Le chat d'octets

Photo de Gribouille

Les opérateurs

Les opérateurs permet d'affecter une valeur à une variable, comparer des variables entre elles ou manipuler des bits, ...

Les opérateurs

Opérateurs Descriptions
- moins
+ plus
/ division
* multiplication
% modulo (n'existe que sur des entiers)
= affectation
== comparaison
!= différent
> plus grand
>= plus grand ou égal
< plus petit
<= plus petit ou égal
&& ET
|| OU
! NON
sizeof donne la taille d'une variable

Exemple :


#include <stdio.h>
void main()
{
    int a, b;
    printf("Entrez a : ");
    scanf("%d",&a);
    printf("Entrez b :");
    scanf("%d",&b);
    // si b est plus grand que a, 
    // le resultat sera 1 sinon 0
    printf("Le plus grand est : %d\n", a < b);
}  
    

Manipulation de bit

Opérateurs Descriptions
& ET
| ou (inclusif)
^ ou (exclusif)
<< décalage à gauche
>> décalage à droite
~ complément à 1

Exemple :


#include <stdio.h>
void main()
{
    //0000 0000 0101 1010 (90)
    short a = 0x005a;
    //0011 1100 0101 1010 (15450)
    short b = 0x3c5a;
    //0000 0110 (6)                  
    unsigned short c = 0X06, d = 0x06;
    printf("%x \n", a & b);
    printf("%x \n", a | b);
    printf("%x \n", a ^ b);
    printf("%x %x \n", ~a, ~b);
    printf("%x \n", (c>>1) | (d<<1));    
}

Explications des résultats

Résultat Explications
5a

  0000 0000 0101 1010
& 0011 1100 0101 1010
= 0000 0000 0101 1010
=> 0101 = 5
=> 1010 = 10 = A
=> 5a   
3c5a

  0000 0000 0101 1010
| 0011 1100 0101 1010
= 0011 1100 0101 1010
=> 0011 = 3 
=> 1100 = 12 = C 
=> 0101 = 5 
=> 1010 = 10 = A
=> 3C5A
3c00

  0000 0000 0101 1010
^ 0011 1100 0101 1010
= 0011 1100 0000 0000
=> 0011 = 3 
=> 1100 = 12 = C 
=>0000 = 0
=> 3C00
ffa5c3a5

0000 0000 0101 1010 
=> ~ => 1111 1111 1010 0101 = FFA5
0011 1100 0101 1010 
=> ~ => 1100 0011 1010 0101 = C3A5
f

0000 0110 => >> 1 => 0000 0011
0000 0110 => << 1 => 0000 1100
  0000 0011 
| 0000 1100 
= 0000 1111 
=> F