Bonsoir,
Voilà je n'arrive pas à comment marche la fonction qui transforme une représentation binaire d'un entier en sa valeur.
En fait le but est d'abord de vérifier si une chaine de caractère (représentation binaire d'un entier) n'est composée que de 0 et de 1, ensuite si cela est vrai elle doit retourner la valeur de cet entier.
D'apres le peu que j'ai compris , on utilise un 'mask' valant 1 au départ et puis on parcourt la chaine de droite à gauche et une fois qu'on a trouvé qu un bit est égal un 1, on fait (n=n|mask)...
et c'est cette étape que je n'arrive pas à saisir...
Si quelqu un peut m'aider à comprendre cette fois, je lui serait reconnaissante..
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 int StrToBin(char *str) { int mask=1; int n=0; int l=strlen(str)-1; while(c<=str) {if (*c!='0' && *c!='1') error(1); if(*c=='1') {n=n|mask; mask<< 1; c--; } return n ; }
Partager