Code source en C

Résolu
lyna191 Messages postés 2 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 7 décembre 2011 - 6 déc. 2011 à 22:34
lyna191 Messages postés 2 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 7 décembre 2011 - 7 déc. 2011 à 20:06
Bonsoir a tous ,

as que il y quelqu'un parmi vous qui peut m'explique ce code la (explication de la fonction Deplace) ?

merci

 int Deplace(int a,int b,int d)
{
int i;
int mask=0x0001;// 0x sert a dire dans quelle base on ecrit 

for(i=0;i<d;i++,mask<<=1) if(!(a&mask)&&(b&mask)) return(d-i);

// a&mask permet de tester le bit de poids faible de a.
return 0;
}

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
7 déc. 2011 à 07:21
int mask=0x0001;// 0x sert a dire dans quelle base on ecrit

=> 1, pas besoin de jouer avec l'hexa ici...

// a&mask permet de tester le bit de poids faible de a.
oui et non, puisque tu décale ton masque a chaque iteration de ta boucle for...

en gros, si
a = 20 (10100²)
b = 12 (01100²)
et
d = 5

on demande a vérifier si l'un des 5 bits de poids faible
de a et b sont à 1 en même temps...

si oui, on renvoie le # du bit concerné
si non, on renvoie 0

ici, donc :

0 = 0
0 = 0
1 1> on retourne 3

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
lyna191 Messages postés 2 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 7 décembre 2011
7 déc. 2011 à 20:06
merci
0