Diferencia entre revisiones de «unsigned int»

De ArduWiki
Saltar a: navegación, buscar
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 11:48 22 jun 2018

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

Vea también

Referencias