Conversion d'une chaine type "01001000" en binaire

brennyboy Messages postés 2 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 13 avril 2006 - 13 avril 2006 à 20:37
ben92600 Messages postés 56 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 juillet 2006 - 14 avril 2006 à 12:54
Bonjour à tous !

J'aimerais savoir comment passer d'une chaine de 8 caracteres contenant seulement de 0 et des 1, au chiffre décimal correspondant à ce chiffre binaire !!

merci d'avance ...

4 réponses

ben92600 Messages postés 56 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 juillet 2006
13 avril 2006 à 21:44
int main(int ac, char **av)
{
int a;

if (ac == 2)
{
a = bou(av[1]);
a = fonction1(a);
}
else
return (0);
printf("%d",a);
}

int bou(char *str)
{
int a;
int b;

a = 0;
b = 0;
while (str[a] != '\0')
{
b = str[a] + b*10;
a++;
}
return (b);
}

int fonction1(int a)
{
int b;
int c;

b = 2;
c = a %10;
a /= 10;
while (a > 0)
{
c += b * (a % 10);
b *= 2;
a = a /10;
}
return (0);
}

sa devrais taider sa ;)
0
ben92600 Messages postés 56 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 juillet 2006
13 avril 2006 à 21:45
oups le dernier c'est un return (c) ;)
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
13 avril 2006 à 22:03
ben92600 je crois que ton code ne va pas convenir car il lit une chaine exprimée en base 10. En binaire, ca ressemble plutot a ca:

#include

using namespace std;

int bin2int(const char* str)
{
int x = 0;
while(*str) {
x <<= 1;
if(*str == '1') x |= 1;
str++;
}
return x;
}

int main()
{
cout << bin2int("1010001") << endl;
}
0
ben92600 Messages postés 56 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 juillet 2006
14 avril 2006 à 12:54
oui c'est vrais je fait pas attention a ce qui rentre mais si les information son bonne a l'entre sa devrais pas posser de probleme
0
Rejoignez-nous