Diferencia entre revisiones de «int»

De ArduWiki
Saltar a: navegación, buscar
(Parámetros)
(Ejemplos)
Línea 50: Línea 50:
 
int n = 0101;      //0 = formato octal, 65
 
int n = 0101;      //0 = formato octal, 65
 
int n = B1000001;  //B = formato binario, 65
 
int n = B1000001;  //B = formato binario, 65
 +
</syntaxhighlight>
 +
 +
== Ejemplo 1 ==
 +
En el siguiente ejemplo usuario pretende usar 4K de [[SRAM]] cuando Arduino [[UNO]] solo tiene 2K.
 +
 +
<syntaxhighlight lang="c++">
 +
int var[2000];    //Error
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Revisión del 12:06 8 jul 2018

Descripción

Los int (enteros) son el tipo de datos primario para el almacenamiento de números.

En el Arduino UNO (y otras placa basadas en el ATmega) un int almacena un valor de 2 byte (16 bit). Esto produce un rango de -32,768 (-2^15) a 32,767 (2^15-1).

En el Arduino DUE, un int almacena un valor de 4 byte (32 bit). Esto produce un rango de -2,147,483,648 (-2^31) a 2,147,483,647 (2^31-1).

Los int almacenan números negativos con una técnica llamada complemento matemático a 2. El bit más alto, a veces llamado bit de "signo" es la bandera que define el número como negativo. El resto de los bits se invierte y se les añade 1.

Sintaxis

int variable [= valor];

Parámetros

variable
nombre de a variable a definir.
valor
numero en el rango. Parámetro opcional.
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 B1111011

Advertencias

  • El Arduino se encarga de tratar los número negativos por nosotros, por lo que las operaciones aritméticas trabajan de forma transparente de la manera esperada. Sin embargo, podemos encontrarnos con una complicación inesperada con el operador bitshift right (>>) (desplazamiento de bit a la derecha).
  • Si sumas 1 al valor maximo que de 32,767 pasa a -32,768.
  • Si restas 1 al valor minimo que de -32,768 pasa a 32,767.
int a = 35767;
a++;              //-32,768
int b = -31768;
b--;              //32,767

Ejemplos

int num;
int x,y,z;
int n = 'A';
int n = 65;
int n = 0x41;       //0x = formato hexadecimal, 65
int n = 0101;       //0 = formato octal, 65
int n = B1000001;   //B = formato binario, 65

Ejemplo 1

En el siguiente ejemplo usuario pretende usar 4K de SRAM cuando Arduino UNO solo tiene 2K.

int var[2000];    //Error

Vea también

Referencias