Code source en C

Résolu
Signaler
Messages postés
2
Date d'inscription
dimanche 3 avril 2011
Statut
Membre
Dernière intervention
7 décembre 2011
-
Messages postés
2
Date d'inscription
dimanche 3 avril 2011
Statut
Membre
Dernière intervention
7 décembre 2011
-
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

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
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
Messages postés
2
Date d'inscription
dimanche 3 avril 2011
Statut
Membre
Dernière intervention
7 décembre 2011

merci