Autor Tema: "&" en PIC C  (Leído 1166 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LuisGonzalez17

  • PIC10
  • *
  • Mensajes: 5
"&" en PIC C
« en: 02 de Agosto de 2020, 15:17:46 »
Buenas tardes,

Estoy realizando un proyecto y utilizo un encoder para el manejo del Manú en el LCD. He buscado ejemplos del manejo del encoder con PIC y me encontré con un ejemplo muy bueno... mas o menos le entiendo a la mayoría del código pero me topé con una linea que no entiendo exactamente lo que hace:

     .
     .
     .
int8 binario;
int8 entrada;
set_tris_a(0b11111);

while(true)
{
     binario = entrada;
     entrada = porta & 3;      <---- Esta es la linea que no entiendo, no se que es lo que hace la "&"
     .
     .
     .
}

Espero que me puedan ayudar, muchas gracias por leer y disculpen las molestias.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:"&" en PIC C
« Respuesta #1 en: 02 de Agosto de 2020, 15:34:56 »
es una AND binaria... es decir hace una AND con el valor 3 decimal o 11b binario.


Eso lo hace para solo dejar los valores que le interesan. ejemplo Supongamos que PORTA sea 1101 1001 luego del AND:

1101 1001  - PORTA
0000 0011  - 3 en binario
------------------
0000 0001  Solo deja pasar lo que tengan los unos... lo demas es 0

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 561
Re:"&" en PIC C
« Respuesta #2 en: 02 de Agosto de 2020, 19:13:07 »
Añadiendo al comentario de KILLER.
El carácter &(ampersand) es un operador de bits.
Al hacer una operación lógica entre dos números binarios A y B, también se le conoce cómo hacer máscara a A.