Robótica Livre
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5115
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Tópicos Abordados na Aula - Operadores | &  Empty Tópicos Abordados na Aula - Operadores | &

Dom Ago 04, 2019 10:13 pm
Os operadores | OU e & E são operadores chamados bitwise, ou seja, que tratam as operações binárias bit a bit em cada byte envolvido na operação
Os operadores || e && são usados nas expressões em testes de condições nos laços e usam somente verdadeiro e falso, 0 ou 1.

Aprendemos também como representar os valores nas variáveis e como o compilador interpreta esses números
byte variavel = 100; //nesse comando uma variável de 8 bits é carregada com o valor 100 em decimal
byte variavel = 0b100; //aqui o a variável é inicializada e carregada com o valor 100 em binário que corresponde a 4 em decimal, usamos então 0b (zero b)
byte variavel = 0x10; //com esse comando o valor 10 em hexadecimal é carregado, que corresponde a 16 em decimal, usamos 0x (zero x)

Na operação bitwise todos os bits de um byte são afetados na operação, veja abaixo

01001001 byte 1
01010111 byte 2
__________
01011111 resultado se a operação for | OU
01000001 resultado se a operação for & E

O programa equivalente seria:
Código:

byte op1 = 0b01001001; //carrega o primeiro byte
byte op2 = 0b01010111; //carrega o segundo byte

void setup(){
Serial.begin(9600); //inicializa porta serial
Serial.print("Resultado da operação E ");
Serial.print(op1 & op2, BIN); //realiza a operação e informa em binário
Serial.print("Resultado da operação OU ");
Serial.print(op1 | op2, BIN);
}

Essas operações podem ser realizadas com vários bytes no mesmo comando.

Estudamos também uma forma de manipular os bits de um byte usando as operações de bitwise, com ela podemos setar (levar ao valor 1) ou resetar (levar ao valor 0) .
1 - Para setar os bits usamos a operação | OU e colocamos em 1 os bits que deseja setar,
EX. para setar os bits 4 e 1 usamos
op1 = op1 | 0b00001001; //Após esse comando op1 terá os bits em 1 e 4 com valor 1, os demais se eram 0 permanecem em 0 e se eram 1 permanecem em 1.
2 - Para resetar os bits usamos o operador & E e colocamos em 0 os bits que deseja resetar,
Ex. para resetar os bits 4 e 1 usamos
op1 = op1 & 0b11110110; //Após esse comando op1 terá os bits 1 e 4 com valor 0, os demais se eram 0 permanecem em 0 e se eram 1 permanecem em 1.
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos