unsigned int
Descrição
No UNO e outras placas baseadas nos microcontroladores ATmega, unsigned ints (inteiros sem sinal) são o mesmo que o tipo int no que esses também armazenam um valor de 2 bytes. Em vez de guardar números negativos, no entanto, esses apenas armazenam valores positivos, garantindo um intervalo útil de 0 a 65,535 ((2^16) - 1).
O Due e outras placas ARM armazenam um unsigned int em 4 bytes (32 bits), de 0 a 4,294,967,295 (2^32 - 1).
A diferença entre unsigned ints e ints (com sinal), está na forma como o bit mais significativo, as vezes chamado de o bit "de sinal", é interpretado. No tipo int do Arduino (que possui sinal), se o bit mais significativo é "1", o número é interpretado como um número negativo, e os outros 15 bits são interpretados com (complemento de 2).
Sintaxe
unsigned int var = val;
Parâmetros
- var: nome da variável
- val: valor a ser atribuído à variável
Código de Exemplo
O trecho de código abaixo cria uma variável unsigned int chamada ledPin e a atribui o valor 13.
※ Notas e Advertências:
Quando variáveis unsigned tem sua capacidade máxima excedida, elas "estouram" e voltam para 0, e também o contrário. Exemplo:
A matemática com variávies unsigned pode produzir resultados inesperados, mesmo se a variável unsigned nunca estourar.
O microcontrolador aplica as seguintes regras:
O cálculo é feito de acordo com a variável de destino. Exemplo, se a variável destino possui sinal, ele irá realizar o cálculo levando em conta o sinal, mesmo que ambas as variáveis de entrada sejam unsigned.
No entanto, em um cálculo que requer um resultado intermediário, o escopo da variável intermediária não é especificado pelo código. Nesse caso, o micro irá usar matemática sem sinal para o resultado intermediário, porque ambas as entradas são unsigned!
Então porque usar variáveis sem sinal?
- Quando o comportamento de estouro é desejado, ex. contadores
- A variável com sinal é muito pequena, e se quer evitar a perda de memória e performance de long/float.
Ver Também
- Linguagem : vetor
- Linguagem : bool
- Linguagem : boolean
- Linguagem : byte
- Linguagem : char
- Linguagem : double
- Linguagem : float
- Linguagem : int
- Linguagem : long
- Linguagem : short
- Linguagem : size_t
- Linguagem : string
- Linguagem : String()
- Linguagem : unsigned char
- Linguagem : unsigned long
- Linguagem : void
- Linguagem : word
Linguagem : Constantes Inteiras
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |