Estou em uma aplicação onde tem uma função que nao sei se é um operador...
movavg_i = (movavg_i + 1) % MOVAVG_SIZE;
O que exatamente faz este "%"?
Tags:
esse é o comando retorna o resto de divisão
Ola. % Retorna o resto da divisão.
Um uso interessante é por exemplo para saber se um numero é divisivel por 2, assim : if(x%2==0) // comando ou multiplo de 10 (x%10==0), sempre vejo esse uso para %.
Espero ter ajudado,
Jota
Olá, Jota. boa tarde!
Obrigado pela resposta.!!
Entendi!! Valeu pela resposta, mas aqui nesse caso eu nao consegui entender....
Olhe como está:
Esse movavg_i é uma variavel int que vai somando apenas (movavg_i = movavg_i +1)
E esse MOVAVG_SIZE é uma variavel const long com valor de 70;
movavg_i = (movavg_i + 1) % MOVAVG_SIZE;
void PostaMedia(float val)
{
movavg_buff[movavg_i] = val;
movavg_i = (movavg_i + 1) % MOVAVG_SIZE;
}
Da pra ter uma ideia com o que eu postei?
Encontrei uma descrição no reference do arduino.
Até onde ele retorna o Resto da divisão. tudo bem>> mas e quando ele é usado após uma soma?
Neste exemplo, qual o seu papel?
/* update one value in an array each time through a loop */
int values[10];
int i = 0;
void setup() {}
void loop()
{
values[i] = analogRead(0);
i = (i + 1) % 10; // modulo operator rolls over variable
}
O que esse %10 faz após a sima do i = i+1?
Eh um limitador.
Equivale a algo como:
Se numero > tal entao numero = resto da divisão por tal.
No exemplo se a resposta for 10 vira 0. Assim i vai de 0 a 9.
Obrigado, Eduardo. Eu estava pra chegar a esssa conclusão e vc confirmou!
Agora faz sentido. Valeu mesmo.
Amigo pelo que entendi é mais ou menos assim:
i = 9
i = (i +1)%10
ou seja i=(9+1)%10, // então i vai receber o valor 0 pois zero é o resto da divisão entre 10 e 10;
Para ficar mais facil va na calculadora de seu computador coloque-a em modo cientifico depois digite um numero qualquer em seguida digite % e depois outro numero qualquer, quando vc apertar enter você tera o valor correspondente ao resto da divisão entre os dois numeros.
outros exemplos:
x = 7 % 5; // x agora comtém 2
x = 9 % 5; // x agora comtém 4
x = 5 % 5; // x agora comtém 0
x = 4 % 5; // x agora comtém 4
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por