Pages: [1]   Go Down
Author Topic: % (modulo) Chi me lo spiega?  (Read 712 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 0
Posts: 689
AHHAH
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

% (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 smiley-wink
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 329
Posts: 22774
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Offline Offline
God Member
*****
Karma: 0
Posts: 689
AHHAH
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 329
Posts: 22774
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged


Offline Offline
Sr. Member
****
Karma: 0
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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





Scusate, ma non ho resistito
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 329
Posts: 22774
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Eh sì, se fai 44%6 ottieni un bel 2  smiley-razz
Logged


Offline Offline
Sr. Member
****
Karma: 1
Posts: 467
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un'applicazione tipica ad esempio è:

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


smiley-grin

Logged

Pages: [1]   Go Up
Jump to: