Spiegazioni state=1-state

Sto leggendo la guida ufficiale di arduino quella scritta da massimo anzi ma non ho capito che significa questa espressione "state=1-state"
(pag.40-41) potreste spiegarmela?

è come scrivere

if (state == 0)
    state = 1;
else
    state = 0;

che è come scrivere

state = !state

tutti fanno la stessa cosa, invertire il valore da 0 a 1 e viceversa.

Che poi se uno vuole essere compatto può anche fare

stato^=1

@nid69ita, bisognerebbe sapere come si fa…

state=state?0:1;

si può anche con lo xor

state ^= 1;

Si ma a questo punto non sarebbe più facile fare

state = 1;

e quindi far diventare state direttamente uno?

Non hai capito:

  • Se prima di eseguire quell'istruzione state vale 0, diventa 1 (1 - 0 = 1)
  • Se prima di eseguire quell'istruzione state vale 1, diventa 0 (1 - 1 = 0)

Dai, non è così difficile :wink:

Giorgen:
Si ma a questo punto non sarebbe più facile fare

state = 1;

e quindi far diventare state direttamente uno?

certamente
se ti serve che state vale 1,

di solito si adopera questo "trucco" dell'alternanza da zero a uno per eseguire una sola volta un "operazione"
.... if (state == 1) stampa sul monitor temperatura, state = 0 ;.....

ma anche per altri scopi

Ok ho capito, effettivamente è semplice, grazie