Les nombres

Différents types de nombre

Dans le langage Arduino, les types de toutes les variables et constantes doivent être définis dans le code et ne peuvent plus être modifiés pendant l’exécution.

Cela permet notamment d’optimiser la gestion de la mémoire (seulement 2ko pour un Arduino UNO !).

Pour les nombres, il existe différents types :

Nom du type Plage de valeur Occupation mémoire (octets)
byte 0 à 255 1
int – 32 768 à 32 767 2 (UNO) 4 (DUE)
unsigned int 0 à 65535 (216-1) 2 (UNO) 4 (DUE)
long -2 147 483 648 à 2 147 483 647 4
unsigned long 0 à 4 294 967 295 (232-1) 4
float 3.4 x 1038 à -3.4 x 1038 4
double -1.7 x 10308 à 1.7 x 10308 4 (UNO) 8 (DUE)

Déclaration

De plus, il est possible d’utiliser plusieurs systèmes de numération (pour les entiers) grâce à des préfixes (aucun, B , 0 , ou 0x ) :

101   // écriture décimale de 101 - pas de préfixe
B101  // écriture binaire de 5    - préfixe "B"
0101  // écriture octale de 65 (attention le préfixe est un "zéro")
0x101 // écriture hexadécimale de 257 - préfixe "0x"

Et enfin on peut imposer un type d’entier différent de celui par défaut (int ) grâce à des suffixes (U  ou u  et L  ou l) :

33u     // pour une constante de type unsigned
100000L // pour une constante de type long
32767ul // pour une constante de type unsigned long

Affichage

Méthodes print()et println()

Pour afficher un nombre (moniteur série, écran LCD, …) ou pour l’écrire dans un fichier (carte SD, …), on peut utiliser les fonctions print() et println()  (présentes dans la bibliothèque Serial notamment).

float n = 1.2345;
int a = 457;
unsigned long b = 12973;
Serial.println(n);   // affiche 1.23 (automatiquement tronqué à 2 chiffres après la virgule)
Serial.println(a);   // affiche 475

Les fonctions print()  et println()  permettent aussi de choisir le système de numération :

Serial.println(a, BIN);       // affiche 111001001
Serial.println(b, HEX);       // affiche 32AD
Serial.print(B1011011, DEC);  // affiche 91

 

 

Vous aimerez aussi...

Laisser un commentaire

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