Ciao,
scusate la domanda, forse banale, in un'istruzione come questa dove voglio verificare 2 condizioni:
if (ch1 == LOW & attivo == false)
Il simbolo &, va messo una volta o due? E quale differenza c'è?
Grazie
Ciao,
scusate la domanda, forse banale, in un'istruzione come questa dove voglio verificare 2 condizioni:
if (ch1 == LOW & attivo == false)
Il simbolo &, va messo una volta o due? E quale differenza c'è?
Grazie
La & singola è un operatore bitwise, è un'operazione logica sui bit di valori interi come una somma o una sottrazione.
La && doppia è un operatore logico booleano che serve serve per concatenare/valutare più condizioni.
Se si lavora solo con valori 1 e 0 sono completamente interscambiabili.
Nella condizione che hai scritto l'uso è indifferente perché le uguaglianze danno come risultato 1 o 0 (equivalenti a true o false), e l'operazione bitwise da sempre risultato 1 o 0.
Stilisticamente trattandosi di una valutazione di condizioni sarebbe più chiaro &&.
Invece nell'esempio seguente i risultati sono completamente diversi. Nel primo caso vogliamo sapere se il valore 240 messo in AND con il valore 15 produce un risultato diverso da zero. Nel secondo vogliamo sapere se entrambi i valori sono contemporaneamente diversi da zero.
a = 240;
b = 15;
if (a & b) -> false
if (a && b) -> true
Grazie