Menu
CoddyTech

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,295

long 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.

challenge icon

Aufgabe

Mittel

Der 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);
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Erste Schaltungen

Übe selbstständig: Arduino-Playground