Bonjour,
Je suis tombé sur un bout de code et je ne sais pas s'il a une utilité (autre que de me faire chercher lol).
Voici le code :
int Devinez(int x)
{
int n=0;
while(x)
{
n++;
x &= x-1;
}
return n;
}
Sur point de vue du code, je sais ce qui se passe, mais l'utilité de cette aglo me trouble. Je n'ai rien vu d'évidant pour l'instant.
Pour ce qui si connaisse bien en math, mais pas forcément en C, voici une petite explication de ce que fait ce bout de code :
On appel la fonction "Devinez" et on lui donne un argument x de type entier.
Dans cette fonction on initialise une variable de type entier "n" à 0.
Dans la boucle while qui va s'executer si x est différent de 0, on va incrémenter la valeur n de 1 puis effectuer une opération de ET logique entre la valeur de x et la valeur de x-1 et ce résultat on le retourne dans x.
Dès que x sera nul, on sortira de cette boucle et la fonction Devinez retournera la valeur n qui aura pour valeur, le nombre d'itération de la boucle.