Quando un int si esaurisce
Fa parte della sezione Primi circuiti del percorso Arduino di Coddy. Lezione 12 di 22.
Una variabile viene memorizzata in un numero fisso di bit, minuscoli interruttori acceso/spento nella memoria della scheda. Sulla Uno, un int ha 16 bit, quindi può contenere solo numeri da -32,768 a 32,767.
Se superi il valore massimo, non aumenta: ricomincia dal valore minimo. 32,767 più 1 diventa -32,768. Questo si chiama overflow e lo sketch non mostra alcun avviso.
Per numeri più grandi, usa un tipo con più bit:
long big = 100000; // da -2,147,483,648 a 2,147,483,647
unsigned long huge = 3000000000; // da 0 a 4,294,967,295long ha 32 bit. unsigned long ha 32 bit ma non può contenere numeri negativi, quindi può arrivare al doppio: è utile per conteggi e tempi.
Un long occupa il doppio della memoria di un int e la Uno ha solo 2048 byte per le variabili, quindi usa int quando i numeri rimangono piccoli.
Sfida
MedioIl codice iniziale aggiunge 1000 a count venti volte al secondo. Premi Esegui e guarda come diventa negativo dopo 32,000.
- cambia il tipo di
countin modo che possa contare oltre 100,000
Poi Verifica.
Provalo tu
int count = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
count = count + 1000;
Serial.println(count);
delay(50);
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Primi circuiti
2Parlare con il computer
Ciao, Monitor serialePrint contro PrintlnStampare numeriLa tua prima variabileContare in avantiQuando un int si esaurisce3La matematica alla lavagna
Costanti con nomeOperatori aritmeticiDivisione interaNumeri decimali con floatUn lampeggio che acceleraEsercitati da solo: Playground Arduino