Go Down

Topic: % (modulo) Chi me lo spiega? (Read 850 times) previous topic - next topic

reizel

% (modulo) e' tra gli operatori aritmetici e io son tonto e non capisco come funziona :smiley-roll-blue:
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

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 (divisore*risultato)+resto ottieni il dividendo, quindi (5*1)+1=6.

Ancora:
3%2=1 -> 2 con resto di 1.

reizel

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

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

Quindi posso far risolvere ad Arduino il problema dei 44 gatti in fila per 6 col resto di......... (non ricordo piu' come continua...)
:D





Scusate, ma non ho resistito

leo72

Eh sì, se fai 44%6 ottieni un bel 2  :P

francesco84

Un'applicazione tipica ad esempio è:

if num %2 == 0
numero pari
else
numero dispari


:D


Go Up