int

Descripción

Los int (enteros) son el tipo de datos primario para el almacenamiento de números.
En el Arduino Uno (y otras placa basadas en el ATMega) un int almacena un valor de 16-bit (2-byte). Esto produce un rango de -32,768 to 32,767 (valor mínimo de -2^15 y un valor máximo de (2^15) - 1). 
En el Arduino Due, unint almacena un valor de 32-bit (4-byte). Esto produce un rango de -2,147,483,648 a2,147,483,647 (valor mínimo de -2^31 y un valor máximo de (2^31) - 1).

Losint almacenan números negativos con una técnica llamada complemento matemático a 2. El bit más alto, a veces llamado bit de "signo" es la bandera que define el número como negativo. El resto de los bits se invierte y se les añade 1.
El Arduino se encarga de tratar los número negativos por nosotros, por lo que las operaciones aritméticas trabajan de forma transparente de la manera esperada. Sin embargo, podemos encontrarnos con una complicación inesperada con el operador bitshift right (>>) (desplazamiento de bit a la derecha).

Example

    int ledPin = 13;

Sintaxis

    int var = val;
  • var - el valor de la variable int.
  • val - el valoe que asignamos a esta variable

Consejo de programación

Cuando las variables superan su máxima capacidad estas se "roll over", es decir, se dan la vuelta y comienzan por el otro extremo, tenga en cuenta que esto sucede en ambas direcciones. Ejemplo para un int de 16-bit:
int x;
x = -32768;
x = x - 1; // x contiene ahoras 32,767 - rolls over en dirección negativa
x = 32767;
x = x + 1; // x contiene ahora -32,768 - rolls over

2 comentarios: