Descripción
En el Arduino Uno y otras placas basadas en el ATMEGA, los int sin signo (entero sin signo) son lo mismo que los int en que almacenan un valor de 2 bytes. En lugar de almacenar números negativos estos solo almacenan valores positivos, en el rango de 0 a 65,535 (2^16) - 1).
El Due almacena un valor de 4 bytes (32-bit), en un rango de 0 a 4,294,967,295 (2^32 - 1).
La diferencia entre los enteros sin signo y enteros con signo, radica en la forma en que el bit más alto, a veces llamado bit de "signo", se interpreta. En el tipo int Arduino (con signo), si el bit es un "1", el número se interpreta como un número negativo, y los otros 15 bits se interpretan como complemento matemático a 2.
Ejemplo
unsigned int ledPin = 13;
Sintasix
unsigned int var = val;
- var - el nombre de la variable entera
- val - el valor que se asigna a la variable
Consejo de codificación
Cuando las variables exceden de su máxima capacidad se "dan la vuelta" y vuelven a su valor más bajo si se están incrementando, o a su valor más alto si se están decrementando.
unsigned int x
x = 0;
x = x - 1; // x contiene ahora 65535 - rolls over dirección negativa
x = x + 1; // x contiene ahora 0 - rolls over
No hay comentarios:
Publicar un comentario