Wenn ein Int an seine Grenzen stößt
Teil des Abschnitts Erste Schaltungen der Arduino-Journey von Coddy. Lektion 12 von 22.
Eine Variable wird in einer festen Anzahl von Bits gespeichert, winzigen Ein-/Ausschaltern im Speicher des Boards. Beim Uno hat ein int 16 Bits, daher kann es nur Zahlen von -32,768 bis 32,767 speichern.
Geht der Wert über die Obergrenze hinaus, wird er nicht größer: Er springt zurück zum unteren Ende. 32,767 plus 1 wird zu -32,768. Das nennt man einen Überlauf, und der Sketch gibt keine Warnung aus.
Für größere Zahlen verwendest du einen Typ mit mehr Bits:
long big = 100000; // -2,147,483,648 bis 2,147,483,647
unsigned long huge = 3000000000; // 0 bis 4,294,967,295long hat 32 Bits. unsigned long hat 32 Bits, aber keine negativen Zahlen, daher reicht er doppelt so hoch: gut für Zähler und Zeitangaben.
Ein long benötigt doppelt so viel Speicher wie ein int, und das Uno hat nur 2048 Bytes für Variablen. Verwende also int, wenn die Zahlen klein bleiben.
Aufgabe
MittelDer Startcode addiert zwanzigmal pro Sekunde 1000 zu count. Drücke auf Run und beobachte, wie der Wert nach 32.000 negativ wird.
- Ändere den Typ von
count, damit er über 100.000 hinaus zählen kann
Dann Check.
Probier es selbst
int count = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
count = count + 1000;
Serial.println(count);
delay(50);
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Erste Schaltungen
2Mit deinem Computer kommunizieren
Hallo, Serial MonitorPrint oder PrintlnZahlen ausgebenDeine erste VariableHochzählenWenn ein Int an seine Grenzen stößtÜbe selbstständig: Arduino-Playground