Constantes inteiras são números usados diretamente no código. Por padrão estes números são tratatados como int's, mas você pode alterar este comportamento com os modificadores U e L (veja abaixo).

Normalmente constantes inteiras são tratadas na base 10 (decimal), mas formatadores especiais podem ser usados para entrar números em outras bases.

Base               Exemplo    Formatador        Comentário

10 (decimal) 123 nenhum

2 (binário) B1111011 'B' inicial somente valores de 8 bits (0 a 255) caracteres válidos 0-1

8 (octal) 0173 '0' inicial caractres válidos: 0-7

16 (hexadecimal) 0x7B '0x' inicial caractres válidos: 0-9 A-F, a-f

Decimal são na base 10. Esta é a matemática do senso comum com a qual você está acostumado. Constatntes sem outros prefixos são asumidas como decimais.

Exemplo:

101     // o mesmo que 101 decimal   ((1 * 10^2) + (0 * 10^1) + 1)

Binários são na base 2. Apenas os caracteres 0 e 1 são válidos.

Exemplo:

B101    // o memso que 5 decimal   ((1 * 2^2) + (0 * 2^1) + 1)

O formatador binário trabalha apenas com bytes (8 bits) entre 0 (B0) e  255 (B11111111). Se for conveniente entrar um número de 16 bits na forma binária você pode fazer isso seguindo o algoritmo abaixo:

The binary formatter only works on bytes (8 bits) between 0 (B0) and 255 (B11111111). If it is convenient to input an int (16 bits) in binary form you can do it a two-step procedure such as:

myInt = B1100110010101010;                     // entrada inválida
myInt = (B11001100 * 256) + B10101010; // B11001100 é o primeiro byte e B10101010 o segundo

Octais são na base oito. Apenas caracteres entre 0 e 7 são válidos. Valores octais são indicados pelo prefixo "0".

Exemplo:

0101    // o mesmo que 65 decimal   ((1 * 8^2) + (0 * 8^1) + 1) 
Cuidado
É possivel gerar um erro difícil de encontrar (não intencional) incluindo um zero à frente de uma constatnte o que fará com que o compilador interprete o valor como octal.


Hexadecimais (ou hex) são na base 16. Caracteres válidos são de 0 a 9 e as letras de A a F; A vale 10, B vale 11 até F que vale 15. Valores hexadeciamis são indicados pelo prefixo "0x". Note A-F pode ser escrito tanto com maiusculas quanto com minúsculas (a-f).

 

Exemplo:

0x101   // o mesmo que 257 decmal   ((1 * 16^2) + (0 * 16^1) + 1)

Formatadores U e L

Por padrão uma constante inteira é tratada como um int com as limitações pertinentes nos valores. Para especificar uma constante inteira com outro tipo de dado proceda assim:

  • um 'u' ou 'U' para forçar a constante como do tipo não assinalado (unsigned). Exemplo: 33u
  • um 'l' ou 'L' para forçar a constante como do tipo longo (long). Exemplo: 100000L
  • um 'ul' ou 'UL' para forçar a constante como do tipo longo não assinalado (unsigned long). Exemplo: 32767ul

 

Veja também

 

Página de início da referência

Correções, sugestões, e nova documentação devem ser enviadas ao Forum.

O texto de referência do Arduino está baixo uma Licença Creative Commons Attribution-ShareAlike 3.0. Amostras de código utilizadas na referência foram deixados  ao domínio público.

 

O conteúdo desta página é uma tradução para o português a partir do site original do Arduino.

Esta obra está sob uma Licença Creative Commons.

Creative Commons License

Assine nossa newsletter
Enviaremos um email de confirmação.