Menu
CoddyTech

Gdy kończy się zakres typu Int

Część sekcji Pierwsze obwody ścieżki Arduino w Coddy. Lekcja 12 z 22.

Zmienna jest przechowywana w stałej liczbie bitów — maleńkich przełączników włączania i wyłączania w pamięci płytki. Na Uno typ int ma 16 bitów, więc może przechowywać tylko liczby od -32,768 do 32,767.

Jeśli przekroczysz górną granicę, liczba nie wzrośnie — zawinie się do dolnej granicy. 32,767 plus 1 daje -32,768. Nazywa się to przepełnieniem, a szkic nie wyświetla żadnego ostrzeżenia.

W przypadku większych liczb użyj typu z większą liczbą bitów:

long big = 100000;           // -2,147,483,648 do 2,147,483,647
unsigned long huge = 3000000000;  // 0 do 4,294,967,295

Typ long ma 32 bity. Typ unsigned long ma 32 bity, ale nie może przechowywać liczb ujemnych, więc jego górna granica jest dwa razy wyższa — sprawdza się przy zliczaniu i mierzeniu czasu.

Typ long zajmuje dwa razy więcej pamięci niż int, a Uno ma tylko 2048 bajtów na zmienne, więc używaj int, gdy liczby pozostają małe.

challenge icon

Wyzwanie

Średni

Program początkowy dodaje 1000 do count dwadzieścia razy na sekundę. Naciśnij Uruchom i obserwuj, jak po 32,000 staje się ujemne.

  • zmień typ count, aby można było zliczać powyżej 100,000

Następnie Sprawdź.

Spróbuj swoich sił

int count = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  count = count + 1000;
  Serial.println(count);
  delay(50);
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Pierwsze obwody

Poćwicz samodzielnie: Edytor online Arduino