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)
(Ejemplo)
 
(No se muestran 21 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 ==
 
<pre>
 
<pre>
unsignet int variable = valor;
+
unsignet int variable [= valor];
variable = 78Uvalor;
+
uint16_t variable [= valor];  //En Arduino UNO
 +
uint32_t variable [= valor];  //En Arduino DUE
 +
size_t variable [= valor];
 +
word variable [= valor];
 +
variable = valorU;
 
</pre>
 
</pre>
  
 
== 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.
 +
;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'''.
  
 
== 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