system
May 29, 2012, 11:11am
1
% (modulo) e' tra gli operatori aritmetici e io son tonto e non capisco come funziona
http://arduino.cc/en/Reference/Modulo
l'ho trovato su uno sketch dove prendevano i minuti di un orologio e ne selezionavano solo le unita' o le decine
mi fate 2 esempi di come funziona, tnx
leo72
May 29, 2012, 11:16am
2
6%2 = 0
6 modulo 2 = 0.
E' il resto dell'operazione di divisione. Siccome 6/2=3 con resto di 0, il modulo ti restituisce 0.
6%5=1
6/5 darebbe 1,2, cioè 1 con resto di 1. Questo perché se fai (divisorerisultato)+resto ottieni il dividendo, quindi (5 1)+1=6.
Ancora:
3%2=1 -> 2 con resto di 1.
system
May 29, 2012, 11:23am
3
il resto della divisione, quindi nello sketch dove l'ho visto c'era
minuti%10
quindi qualsiasi fosse il "minuti" (da 01 a 59) il modulo mi avrebbe dato come risultato le sole unita' perche' non erano divisibili per 10?
meglio se mi scrivo un esempio per capire meglio
leo72
May 29, 2012, 11:26am
4
se era minuti%10 è un sistema per sapere le unità , come hai detto tu.
10%10=0
1%10=1
11%10=1
23%10=3
In pratica ottieni la differenza con la decina più vicina
acik
May 29, 2012, 8:27pm
5
Quindi posso far risolvere ad Arduino il problema dei 44 gatti in fila per 6 col resto di......... (non ricordo piu' come continua...)
Scusate, ma non ho resistito
leo72
May 29, 2012, 9:12pm
6
Eh sì, se fai 44%6 ottieni un bel 2
Un'applicazione tipica ad esempio è:
if num %2 == 0
numero pari
else
numero dispari