O operador de deslocamento a esquerda << faz os bits do operando à esquerda do operador serem deslocados a esquerda pelo número de posições especificadas pelo operando à direita do operador.
Sintaxe
variável << numero_de_bits;
Parâmetros
variável: Tipos de dados permitidos: byte, int, long numero_de_bits: um número menor ou igual 32. Tipos de dados permitidos: int
Código de Exemplo
int a = 5; // binário: 0000000000000101
int b = a << 3; // binário: 0000000000101000, ou 40 em decimal
Notas e Advertências
Quando você desloca um valor x por y bits (x << y), os y bits mais a esquerda em x são perdidos, literalmente deslocados para fora da existência:
int x = 5; // binário: 0000000000000101
int y = 14;
int resultado = x << y; // binário: 0100000000000000 - os primeiros 1 em 101 foram descartados
Se você tem certeza que nenhum dos bits 1 em um valor serão descartados no deslocamento, uma forma simples de pensar do operador de deslocamento à esquerda é que ele multiplica o operando a esquerda por 2 elevado ao operando a direita. Por exemplo, para gerar potências de 2, as seguintes expressões podem ser utilizadas:
O exemplo a seguir pode ser utilizado para imprimir um byte recebido no monitor serial, usando o operador de deslocamento à esquerda para mover 1 pelo número de bits especificado, testar o valor com o E (&), e imprimir seu valor (1 ou 0):
// Imprime o valor binário (1 ou 0) de um byte
void printOut1(int c) {
for (int bits = 7; bits > -1; bits--) {
// Compara bits 7-0 no byte
if (c & (1 << bits)) {
Serial.print("1");
}
else {
Serial.print("0");
}
}
}
We care about the privacy and personal data of our users.
To continue, please give us your consent:
Please confirm that you have read the privacy policy
Thank you for subscribing!
Curious to learn more?
Are you also a teacher, student, or professional that loves using Arduino in your day-to-day activities?
Then keep up-to-date with either our STEM or Professional monthly newsletters.
Arduino weekly newsletter (already subscribed)
Educators can benefit from the ever growing tech that shapes our environment through fun cool projects.
Why not awe your boss with highly innovative ways to help keep your enterprise connected at no extra cost?
Arduino Survey
We'd like to get to know you little better.
Please help us improve by answering this super short optional survey.