Conversion d'une chaine type "01001000" en binaire

Signaler
Messages postés
2
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
13 avril 2006
-
Messages postés
56
Date d'inscription
dimanche 13 novembre 2005
Statut
Membre
Dernière intervention
11 juillet 2006
-
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

Messages postés
56
Date d'inscription
dimanche 13 novembre 2005
Statut
Membre
Dernière intervention
11 juillet 2006

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 ;)
Messages postés
56
Date d'inscription
dimanche 13 novembre 2005
Statut
Membre
Dernière intervention
11 juillet 2006

oups le dernier c'est un return (c) ;)
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
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;
}
Messages postés
56
Date d'inscription
dimanche 13 novembre 2005
Statut
Membre
Dernière intervention
11 juillet 2006

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