C++ [Résolu]

Signaler
Messages postés
10
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 janvier 2009
-
Messages postés
10
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 janvier 2009
-
bonsoir,
je suis débutante en c++ et j'ai trouvé  un code sur net
mais j'ai rien compri

unsigned int index;
      unsigned long int count[2];
   index = (unsigned int)((count[0] >> 3) & 0x2F);

merci d'vance

6 réponses

Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
il doit manquer la phase initialisation du tableau count

ça doit être
index = (unsigned int)((count[0] >> 3) & 0x2F);
qui pose pb

détaillons

index = (unsigned int)xxxxxx;

simple cast.

(count[0] >> 3)
décallage de 3 bits à droite de la 1ere valeur de count

(aaaaaaaa & 0x2F)
masque binaire permettant de conserver les 6 premiers bits de la variable aaaaaaaa.

plus d'info sur les bases ici : http://www.apprendre-en-ligne.net/crypto/images/bases.html

bon bout d'an

___________________________________________________________
Magicalement
Nono
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
1
Bah alors Nono tu ne réponds seulement lorsque des filles posent des questions ? :)

Sinon il y a une petite erreur dans ce que tu dis, le masque binaire ne conserve pas les 6 premiers bits de aaaaaaa.
En effet 0x2F = 101111 (bainaire). Un masque 0x3F auarait conserver les 6 permiers bits, avec 0x2F on ne conserve pas le 5ième bit.

Shell
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
exact
merci du complément shell ^^
(et pour info, non je n'avais pas noté répondre à une damoiselle)
___________________________________________________________
Magicalement
Nono
Messages postés
10
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 janvier 2009

si count[0] = 0;
donc index=???
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
1
Si count[0] = 0, index = 0.


Explication :

0 en binaire = 0000000


Donc même avec un décalage de 3 bits vers la droite on aura toujours 0 = 000000 (binaire).

Ensuite lorsqu'on applique le masque : 000000 & 101111 = 000000.


Index vaut alors 0.

Shell
Messages postés
10
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 janvier 2009

merci bcp