ich möchte ein Programm schreiben das binär in dezimal umwandelt (später noch mit hex erweitern). Jedoch bekomme ich z.B. bei der Eingabe von "1001" ne ausgabe von "36", richtig wäre aber "9". Vielleicht kann mir ja jemand helfen
hier mein Quellcode:
C-Quellcode
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main(){
- char eingabe[200];
- int i, j, k, l;
- int zahl, dezimal_ausgabe = 0;
- int binaer_liste[200], dezimal_liste[200];
- printf("Bitte Binaerzahl eingeben: ");
- scanf("%s",&eingabe);
- for( i = 0; i < strlen(eingabe); i++ )
- {
- zahl = ( eingabe[ i ] ) - 48;
- binaer_liste[i] = zahl;
- }
- k = 1;
- printf( "\n\n" );
- for( j = ( (strlen(eingabe) ) + 1 ); j >=0 ; j-- )
- {
- dezimal_liste[j] = ( binaer_liste[j] * k );
- k = k * 2;
- dezimal_ausgabe = dezimal_ausgabe + dezimal_liste[j];
- }
- printf( "\n%d\n", dezimal_ausgabe );
- system( "pause" );
- return 0;
- }