Base Du Langage C
Commentaire d'arrêt : Base Du Langage C. Recherche parmi 300 000+ dissertationsPar dlc91 • 25 Février 2015 • Commentaire d'arrêt • 3 128 Mots (13 Pages) • 513 Vues
Bases du langage C
Type de variables :
char qui peut mémoriser une valeur sur 8 bits comprise entre -27 (-128) et 27-1 (127),
unsigned char qui peut mémoriser une valeur sur 8 bits comprise entre 0 et 28-1 (255),
short qui peut mémoriser une valeur sur 16 bits comprise entre -215 (-32768) et 215-1 (32767),
unsigned short qui peut mémoriser une valeur sur 16 bits comprise entre 0 et 216-1 (65535),
int qui peut mémoriser une valeur sur 32 bits comprise entre -231 (-2 147 483 648) et 231-1 (2 147 483 647),
unsigned int qui peut mémoriser une valeur sur 32 bits comprise entre 0 et 232-1 (4 294 967 295),
float qui peut mémoriser une valeur sur 32 bits comprise entre -3,4*1038 et 3,4*1038,
double qui peut mémoriser une valeur sur 64 bits comprise entre -1,8*10308 et 1,8*10308.
Affectation:
L'affectation d'une valeur à une variable se fait avec le signe =. L'élément situé à droite de ce signa affecte l'élément situé à gauche.
Exemple :
char cutier;
char pentier;
cutier = 10;
pentier = 20;
cutier = pentier; //cutier et pentier contiennent la même valeur : 20
Opérateurs:
Opérateurs arithmétiques : - Somme : signe +, - Différence : signe -, - Multiplication : signe *, - Division : signe /, - Modulo (reste de la division entière) : signe %, - Incrémentation : signe ++, - Décrémentation : signe --. Exemple :
int valeur;
int reste;
valeur = 17 ; // initialisation de valeur à 17
-> Après exécution, valeur vaut 17
valeur = valeur + 10; //ajout de 10
-> Après exécution, valeur vaut 27
valeur = valeur - 20; //retrait de 20
-> Après exécution, valeur vaut 7
valeur = valeur * 4; //multiplication par 4
-> Après exécution, valeur vaut 28
valeur = valeur / 2; //division par 2
-> Après exécution, valeur vaut 14
reste = valeur % 5; //reste de la division de valeur par 5
-> Après exécution, valeur est inchangée, reste vaut 4
Opérateurs logiques : - Ou (bit à bit) : signe |, - Ou logique : signe ||, - Et (bit à bit): signe &, - Et logique : signe &&, - Négation : signe !, - Complément : signe ~ - Ou exclusif : signe ^, - Décalage à gauche : signe <<, - Décalage à droite : signe >>
Exemple :
unsigned char octet1 = 0x55; //initialisation par une valeur exprimée
//en hexadécimal
unsigned char octet2, octet3;
bool resultat;
octet2 = octet1 & 0x0F; //octet2 contiendra 0x05
octet2 = octet1 | 0xF0; //octet2 contiendra 0xF5
resultat = (octet1 > 0x10) && (octet2 > 0x10);
//resultat contiendra le ET logique entre les deux propositions
//octet1 > 0x10 qui est vrai et octet2 > 0x10 qui est vrai
//aussi donc resultat sera affecté par la valeur true
resultat = !((octet1 > 0x10) || (octet2 > 0x10));
//resultat contiendra le complément du OU logique entre les
//deux propositions octet1 > 0x10 qui est vrai et comme
//l'opération est un OU logique, on peut conclure sans tester
//la seconde proposition. resultat contiendra donc false.
octet2 = ~octet1; //octet2 contiendra 0xAA
octet2 = octet1 ^ octet2; //octet2 contiendra 0xFF
octet2 = octet1 << 2; //octet2 contiendra 0x54
octet2 = octet1 >> 3; //octet2 contiendra 0x0A
Remarque : un décalage à gauche de n bits correspond à une multiplication par 2n. Un décalage à droite de n bits correspond à une division par 2n.
Contractions : Presque toutes les opérations précédentes peuvent être écrites avec une notation "contractée".
Exemple :
int valeur;
valeur += 5; //équivalent à valeur = valeur + 5
valeur *= 9; //équivalent à valeur = valeur * 9
valeur &= 0x01 //équivalent à valeur = valeur & 0x01
//ce qui permet de ne garder que le bit de
//poids faible
Etc.
Test :
Les tests sont réalisés avec l'instruction if. On peut réaliser les tests : - d'égalité avec les signes ==, - d'inégalité avec les signes !=, - d'infériorité stricte avec le signe <, - d'infériorité ou égalité avec les signes <=, - de supériorité stricte avec le signe >, - de supériorité ou égalité avec les signes >=.
Exemple :
...