Menu
CoddyTech

Quando um Int chega ao limite

Parte da seção Primeiros circuitos do Journey de Arduino da Coddy. Lição 12 de 22.

Uma variável é armazenada em uma quantidade fixa de bits, pequenos interruptores de ligado/desligado na memória da placa. No Uno, um int tem 16 bits, então só pode armazenar números de -32,768 a 32,767.

Se ultrapassar o limite superior, o valor não aumenta: ele volta ao limite inferior. 32,767 mais 1 se torna -32,768. Isso é chamado de estouro, e o sketch não dá nenhum aviso.

Para números maiores, use um tipo com mais bits:

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

long tem 32 bits. unsigned long tem 32 bits, mas não pode representar números negativos, então pode chegar ao dobro: é bom para contagens e tempos.

Um long ocupa o dobro da memória de um int, e o Uno tem apenas 2048 bytes para variáveis, então use int quando os números forem pequenos.

challenge icon

Desafio

Médio

O código inicial adiciona 1000 a count vinte vezes por segundo. Pressione Executar e observe quando ele fica negativo após 32.000.

  • altere o tipo de count para que ele possa contar além de 100.000

Em seguida, Verificar.

Experimente você mesmo

int count = 0;

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

void loop() {
  count = count + 1000;
  Serial.println(count);
  delay(50);
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Primeiros circuitos

Pratique por conta própria: Playground de Arduino