Diferencia entre revisiones de «unsigned int»
De ArduWiki
m (Agregué posibles formas alternativas de expresar el tipo de dato, que se pueden encontrar sobre todo en códigos fuente de librerías) |
|||
Línea 6: | Línea 6: | ||
== Sintaxis == | == Sintaxis == | ||
<pre> | <pre> | ||
− | unsignet int variable = valor; | + | unsignet int variable [= valor]; |
+ | uint16_t variable [= valor]; //En Arduino UNO | ||
+ | uint32_t variable [= valor]; //En Arduino DUE | ||
variable = 78Uvalor; | variable = 78Uvalor; | ||
</pre> | </pre> | ||
Línea 12: | Línea 14: | ||
== Parametros == | == Parametros == | ||
;variable: nombre de la variable a definir. | ;variable: nombre de la variable a definir. | ||
− | ;valor: numero entre 0 y 4,294'967,295. | + | ;valor: numero entre 0 y 4,294'967,295. Parámetro opcional. |
+ | ;78Uvalor: igual rango que anterior pero debe formar con '''78U'''. | ||
== Advertencias == | == Advertencias == | ||
− | * En el Arduino UNO y otras placas basadas en el ATmega, los '''unsigned int''' (enteros sin signo) son el mismo tamaño que los [[int]] osea 2 bytes (16 bit), pero en lugar de almacenar números negativos, solo almacenan valores positivos por su capacidad es el doble de [[int]]. Alternativamente puede verse declarado como tipo '''uint16_t'''. | + | * En el Arduino [[UNO]] y otras placas basadas en el ATmega, los '''unsigned int''' (enteros sin signo) son el mismo tamaño que los [[int]] osea 2 bytes (16 bit), pero en lugar de almacenar números negativos, solo almacenan valores positivos por su capacidad es el doble de [[int]]. Alternativamente puede verse declarado como tipo '''uint16_t'''. |
− | * El Arduino DUE almacena un valor de 4 bytes (32 bit), con un rango de 0 a 4,294,967,295 (2^32 - 1). Alternativamente puede verse declarado como tipo '''uint32_t'''. | + | * El Arduino [[DUE]] almacena un valor de 4 bytes (32 bit), con un rango de 0 a 4,294,967,295 (2^32 - 1). Alternativamente puede verse declarado como tipo '''uint32_t'''. |
+ | * Si sumas 1 al valor maximo que de 4,294,967,295 pasa a 08. | ||
+ | * Si restas 1 al valor minimo que de 0 pasa a 4,294,967,295. | ||
== Ejemplo == | == Ejemplo == | ||
<pre> | <pre> | ||
unsigned int x = 123; | unsigned int x = 123; | ||
− | int x = 78U123; //Con 78U forzamos unsigned | + | int x = 78U123; //Con "78U" forzamos unsigned |
</pre> | </pre> | ||
Revisión del 15:48 22 jun 2018
Contenido
Descripción
Es el formato numérico de 2 bytes (16 bits), son enteros comprendidos en el rango de 0 a 65,535 (2^16-1).
Nota: La diferencia entre enteros sin signo y enteros con signo, radica en la forma en que se trata el bit más alto, a veces llamado bit de "signo". En el tipo entero con signo, si el bit más alto es 1, el número se interpreta como que es un número negativo y los otros 15 bits se interpretan como complemento matemático a 2.
Sintaxis
unsignet int variable [= valor]; uint16_t variable [= valor]; //En Arduino UNO uint32_t variable [= valor]; //En Arduino DUE variable = 78Uvalor;
Parametros
- variable
- nombre de la variable a definir.
- valor
- numero entre 0 y 4,294'967,295. Parámetro opcional.
- 78Uvalor
- igual rango que anterior pero debe formar con 78U.
Advertencias
- En el Arduino UNO y otras placas basadas en el ATmega, los unsigned int (enteros sin signo) son el mismo tamaño que los int osea 2 bytes (16 bit), pero en lugar de almacenar números negativos, solo almacenan valores positivos por su capacidad es el doble de int. Alternativamente puede verse declarado como tipo uint16_t.
- El Arduino DUE almacena un valor de 4 bytes (32 bit), con un rango de 0 a 4,294,967,295 (2^32 - 1). Alternativamente puede verse declarado como tipo uint32_t.
- Si sumas 1 al valor maximo que de 4,294,967,295 pasa a 08.
- Si restas 1 al valor minimo que de 0 pasa a 4,294,967,295.
Ejemplo
unsigned int x = 123; int x = 78U123; //Con "78U" forzamos unsigned