Diferencia entre revisiones de «unsigned int»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo)
 
(No se muestran 20 ediciones intermedias del mismo usuario)
Línea 2: Línea 2:
 
Es el formato numérico de 2 bytes (16 bits), son enteros comprendidos en el rango de 0 a 65,535 (2^16-1).
 
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.}}
+
{{Tip|Alternativamente puede verse declarado como tipo [[word]] o '''uint16_t''', sin embargo funciona exactamente igual.}}
 +
 
 +
{{Nota|La diferencia entre enteros sin signo y enteros con signo o [[int]], 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 ==
 
== Sintaxis ==
Línea 9: Línea 11:
 
uint16_t variable [= valor];  //En Arduino UNO
 
uint16_t variable [= valor];  //En Arduino UNO
 
uint32_t variable [= valor];  //En Arduino DUE
 
uint32_t variable [= valor];  //En Arduino DUE
variable = 78Uvalor;
+
size_t variable [= valor];
 +
word variable [= valor];
 +
variable = valorU;
 
</pre>
 
</pre>
  
Línea 15: Línea 19:
 
;variable: nombre de la variable a definir.
 
;variable: nombre de la variable a definir.
 
;valor: numero entre 0 y 4,294'967,295. Parámetro opcional.
 
;valor: numero entre 0 y 4,294'967,295. Parámetro opcional.
;78Uvalor: igual rango que anterior pero debe formar con '''78U'''.
+
;valorU: forzar tipo con subfijo '''U'''. Puedes omitir '''unsigned int''' antes del nombre de la variable.
 +
 
 +
{| class="wikitable col2cen"
 +
|+Posibles formateadores
 +
!Base!!Subfijo!!Ejemplo
 +
|-
 +
|[[unsigned int]]||U||n = 123U
 +
|-
 +
|[[long]]||L||n = 123L
 +
|-
 +
|[[unsigned long]]||UL||n = 123UL
 +
|-
 +
|[[float]]||F||n =12.3F
 +
|}
 +
 
 +
 
 +
{| class="wikitable col2cen"
 +
|+Posibles formateadores
 +
!Base!!Prefijo!!Comentario!!Ejemplo
 +
|-
 +
|DEC||ninguno||Dígitos 0~9||123
 +
|-
 +
|HEX||0x||dígitos 0~9 + Caracteres A~F||0x7B
 +
|-
 +
|OCT||0||digitos 0~7||0173
 +
|-
 +
|BIN||B||0 o 1||B1110011
 +
|}
 +
 
 +
== Comentarios ==
 +
* Si sumas 1 al valor maximo que de 4,294,967,295 pasa a 0.
 +
* Si restas 1 al valor minimo que de 0 pasa a 4,294,967,295.
  
 
== 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 Arduino [[UNO]] y otras placas basadas en el ATmega, los '''unsigned int''' almacenan un numero de 2 bytes (16 bit), con un rango de entre 0 y 32,065 (2^16 - 1). Alternativamente puede verse declarado como tipo '''uint16_t''' o [[word]].
* 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'''.
+
* En Arduino [[DUE]] y [[Zero]], los '''unsigned int''' almacenan un numero 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>
+
<syntaxhighlight lang="c++">
unsigned int x = 123;
+
unsigned int x = 12345;
int x = 78U123; //Con "78U" forzamos unsigned
+
x = 12345U;               //Con "U" forzamos unsigned int
</pre>
+
</syntaxhighlight>
  
 
== Vea también ==
 
== Vea también ==
* [[byte]]
+
<categorytree mode=all>Tipo dato</categorytree>
* [[int]]
 
* [[long]]
 
* [[float]]
 
* [[unsigned long]]
 
  
 
== Referencias ==
 
== Referencias ==
 
* [https://www.arduino.cc/reference/es/language/functions/time/millis/ Guia de referencia de Arduino]
 
* [https://www.arduino.cc/reference/es/language/functions/time/millis/ Guia de referencia de Arduino]
  
[[Category:Variables]]
+
[[Category:Tipo dato]]

Revisión actual del 00:50 25 jul 2019

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).

Tip: Alternativamente puede verse declarado como tipo word o uint16_t, sin embargo funciona exactamente igual.


Nota: La diferencia entre enteros sin signo y enteros con signo o int, 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
size_t variable [= valor];
word variable [= valor];
variable = valorU;

Parametros

variable
nombre de la variable a definir.
valor
numero entre 0 y 4,294'967,295. Parámetro opcional.
valorU
forzar tipo con subfijo U. Puedes omitir unsigned int antes del nombre de la variable.
Posibles formateadores
Base Subfijo Ejemplo
unsigned int U n = 123U
long L n = 123L
unsigned long UL n = 123UL
float F n =12.3F


Posibles formateadores
Base Prefijo Comentario Ejemplo
DEC ninguno Dígitos 0~9 123
HEX 0x dígitos 0~9 + Caracteres A~F 0x7B
OCT 0 digitos 0~7 0173
BIN B 0 o 1 B1110011

Comentarios

  • Si sumas 1 al valor maximo que de 4,294,967,295 pasa a 0.
  • Si restas 1 al valor minimo que de 0 pasa a 4,294,967,295.

Advertencias

  • En Arduino UNO y otras placas basadas en el ATmega, los unsigned int almacenan un numero de 2 bytes (16 bit), con un rango de entre 0 y 32,065 (2^16 - 1). Alternativamente puede verse declarado como tipo uint16_t o word.
  • En Arduino DUE y Zero, los unsigned int almacenan un numero 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.

Ejemplo

unsigned int x = 12345;
x = 12345U;                //Con "U" forzamos unsigned int

Vea también

  bool
  byte
  char
  int
  long
  void
  word


Referencias