programm C Binärzahl in Dezimalzahl umwandeln?

2 Antworten

So könnte es klappen:

int bin2int ( char const * binary )
{
int result = 0;
 for ( ; *binary; ++binary )
 result = 2*result+(*binary=='1');
 return result;
}
printf( "%d", bin2int("01101001") );
Kirra1 
Fragesteller
 13.01.2016, 20:27

können Sie das ein bisschen vereinfachen 

ich habe die Antwort nicht verstanden

0
ralphdieter  13.01.2016, 20:53
@Kirra1
/* Binaere Zeichenkette in int umwandeln: */

int bin2int ( char const * binary )
{
int result = 0;
int pos;

/* Alle Binaerziffern von links nach rechts
verarbeiten ('\0' ist das String-Ende): */

 for ( pos=0; binary[pos]!='\0'; ++pos )
if ( binary[pos]=='1' ) /* Ziffer '1' */
 result = 2*result+1;
else /* Ziffer '0' */
result = 2*result;

 return result;
}

So besser?

0

allmählich verstehe ich, warum man hier bei GF keine Fragen zu Hausaufgaben stellen soll (darf). du scheinst ja jede informatik-aufgabe postwendend hier abzulegen.
und irgendwie findest du immer wieder leute, die brav deine fragen beantworten. Wobei du die dann doch nicht verstehst.

Für dich scheint eine programmiersprache wie ein gedicht in chinesisch zu sein, was du durch auswendig lernen zu beherrschen suchst.
Ist informatik ein pflichtfach? Man muss nicht alles können.