Cuando un int se queda sin espacio
Parte de la sección Primeros circuitos del Journey de Arduino de Coddy. Lección 12 de 22.
Una variable se almacena en un número fijo de bits, pequeños interruptores de encendido y apagado en la memoria de la placa. En el Uno, un int tiene 16 bits, por lo que solo puede almacenar números de -32,768 a 32,767.
Si superas el límite superior, no crece: vuelve al límite inferior. 32,767 más 1 se convierte en -32,768. Esto se llama desbordamiento, y el sketch no muestra ninguna advertencia.
Para números más grandes, usa un tipo con más bits:
long big = 100000; // -2,147,483,648 a 2,147,483,647
unsigned long huge = 3000000000; // 0 a 4,294,967,295long tiene 32 bits. unsigned long tiene 32 bits, pero no admite números negativos, así que puede llegar al doble: es útil para conteos y tiempos.
Un long ocupa el doble de memoria que un int, y el Uno solo tiene 2048 bytes para variables, así que usa int cuando los números sean pequeños.
Desafío
IntermedioEl código inicial suma 1000 a count veinte veces por segundo. Pulsa Ejecutar y observa cómo se vuelve negativo después de 32.000.
- cambia el tipo de
countpara que pueda contar más allá de 100.000
Después, Comprueba.
Pruébalo tú mismo
int count = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
count = count + 1000;
Serial.println(count);
delay(50);
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Primeros circuitos
2Hablando con tu computadora
Hola, Monitor SerialPrint frente a PrintlnImprimir númerosTu primera variableContar hacia arribaCuando un int se queda sin espacio3Matemáticas en la pizarra
Constantes con nombreOperadores aritméticosDivisión enteraDecimales con floatUn parpadeo que se aceleraPractica por tu cuenta: Playground de Arduino