Go Down

Topic: % (modulo) Chi me lo spiega? (Read 929 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy