Quand un int arrive à sa limite
Fait partie de la section Premiers circuits du Journey Arduino de Coddy. Leçon 12 sur 22.
Une variable est stockée dans un nombre fixe de bits, de minuscules interrupteurs marche/arrêt dans la mémoire de la carte. Sur l’Uno, un int comporte 16 bits, il ne peut donc contenir que des nombres de -32,768 à 32,767.
Si on dépasse la limite supérieure, le nombre n’augmente pas : il revient à la limite inférieure. 32,767 plus 1 devient -32,768. C’est ce qu’on appelle un débordement, et le programme ne donne aucun avertissement.
Pour les nombres plus grands, utilisez un type avec davantage de bits :
long big = 100000; // -2,147,483,648 à 2,147,483,647
unsigned long huge = 3000000000; // 0 à 4,294,967,295long comporte 32 bits. unsigned long comporte 32 bits, mais ne peut pas contenir de nombres négatifs : il peut donc aller deux fois plus haut, ce qui est pratique pour les comptages et les durées.
Un long occupe deux fois plus de mémoire qu’un int, et l’Uno ne dispose que de 2048 octets pour les variables ; utilisez donc int lorsque les nombres restent petits.
Défi
MoyenLe programme de départ ajoute 1000 à count vingt fois par seconde. Appuie sur Exécuter et regarde-le devenir négatif après 32,000.
- change le type de
countpour qu’il puisse compter au-delà de 100,000
Ensuite, Vérifie.
Essayez vous-même
int count = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
count = count + 1000;
Serial.println(count);
delay(50);
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Premiers circuits
2Parler à votre ordinateur
Bonjour, Serial MonitorPrint ou PrintlnAfficher des nombresVotre première variableCompter en avantQuand un int arrive à sa limiteEntraînez-vous par vous-même : Playground Arduino