TODOPIC
Otros Microcontroladores / Dispositivos programables => Arduino => Mensaje iniciado por: DominusDRR en 08 de Septiembre de 2022, 18:24:25
-
Hola.
Estoy migrando un código de un ejemplo en Arduino a otro microcontrolador sin Arduino.
Me he topado con la siguiente.
if ((mode & MODE_CARDEMU and modeSE == 2) || (mode & MODE_P2P and modeSE == 3))
Mi pregunta es: ¿Cuál es la diferencia entre & y and?
-
La misma diferencia uqe hay entre & y &&
& es la AND bitwise o bit a bit.
&& es la AND logica, es decir solo tomando como verdadero y falso.
https://en.cppreference.com/w/cpp/language/operator_alternative
En tu ejemplo..
mode & MODE_CARDEMU
Observa si el bit de CARDEMU esta activo... Supongamos que MODE_CARDEMU es 0010 , si mode termina siendo 1010, te vas a quedar con : 0010, en este caso al ser distinto de cero es "verdadero" (logico)
Por otro lado tenes modeSE == 2, lo cual se va a evaluar como verdadero o falso (logico).
Luego tenes el AND logico entre estos dos.. ¿El bit de CARDEMU esta presente en mode y ademas modeSE es igual a 2?
-
https://en.cppreference.com/w/cpp/language/operator_alternative
Esa no me la sabía. Gracias