This page is also available in 3 other languages

Constantes Tipo Entero

[Constantes]

Descripcion

Las constantes tipo Entero son numeros que se usan directamente en un sketch, como 123. Por defecto, estos numeros se manejan como int pero puedes cambiar esto con los modificadores U y L (ver abajo).

Normalmente, las constantes tipo entero son tratadas como enteros base 10 (decimal), pero se pueden usar notaciónes especiales (formatters) para usar numeros en otras bases.

Base Ejemplo Formatter Comentario

10 (decimal)

123

none

2 (binario)

B1111011

'B' inicial

solo funciona con valores de 8 bits (0 to 255) caracteres validos 0&1

8 (octal)

0173

"0" inicial

caracteres validos 0-7

16 (hexadecimal)

0x7B

"0x" inicial

caracteres validos 0-9, A-F, a-f

Decimal (base 10)

Esta es la matematica comun a la que estas acostumbrado. Constantes sin ningun prefijo son tomadas como en formato decimal.

Código de Ejemplo:

n = 101;     // lo mismo que decimal 101   ((1 * 10^2) + (0 * 10^1) + 1)

Binario (base 2)

Solo son validos los caracteres 0 y 1.

Código de Ejemplo:

n = B101;    // lo mismo que el decimal 5   ((1 * 2^2) + (0 * 2^1) + 1)

El formateador binario solo trabaja en bytes (8 bits) entre 0 (B0) y 255 (B11111111). Si es conveniente introducir un int (16 bits) en forma binaria lo puedes hacer en un procedimiento de dos pasos, como:

myInt = (B11001100 * 256) + B10101010;    // B11001100 es el  byte alto`

Octal (base 8)

Solo son validos los caracteres 0 hasta 7. Los valores Octales se indican con el prefijo "0" (cero).

Código de Ejemplo:

n = 0101;    // lo mismo que el decimal 65   ((1 * 8^2) + (0 * 8^1) + 1)

Es posible generar un bug dificil de encontrar incluyendo (sin intencion) un cero al principio de una constante, que el compilador interpretara como una constante octal.

Hexadecimal (base 16)

Los caracteres validos son del 0 al 9 y las letras A a la F; A tiene un valor de 10, B es 11, hasta F, que es 15. Los valores Hex se distinguen por el prefijo "0x". Toma nota que A-F puede ser indicado en mayusculas o minusculas (a-f).

Código de Ejemplo:

n = 0x101;   // lo mismo que el decimal 257   ((1 * 16^2) + (0 * 16^1) + 1)

Notas y Advertencias

formateadores U & L:

Por defecto, una constante tipo entero se maneja como un int con las correspondientes limitaciones en valores. Para indicar una constante tipo entero con otro tipo de datos, debes adicionar al final:

  • una 'u' o 'U' para forzar la constante en un formato de datos unsigned. Ejemplo: 33u

  • una 'l' o 'L' para forzar la constante en un formato de datos long. Ejemplo: 100000L

  • una 'ul' o 'UL' para forzar la constante en un formato de datos unsigned long. Ejemplo: 32767ul

Ver tambien