Oktalzahl > Dezimalzahl



  • Hallo Leute,

    die Aufgabenstellung lautet:
    "Entwickeln Sie ein Programm welches eine vierstellige Oktalzahl von der Tastatur einliest.
    Lesen sie hierzu jeweils vier Ziffern der Zahl als Zeichen (char) ein. Wandeln Sie die eingelesenen Ziffern in eine Dezimalzahl um und geben das Ergebnis auf dem Bildschirm aus."

    Also mein Problem ist, dass ich nicht weiß wie ich einem numerischen Char also (1,2,3...) den selben Wert als integer zuweisen kann. Die Formel zur Umwandlung ist mir bekannt.

    include <stdio.h>
    #include <math.h>
    int main()
    {
    int a,b,c,d;
    printf("Guten Tag, bitte geben sie eine vierstellige Oktalzahl ein:\n");
    scanf("%i %i %i %i",&a,&b,&c,&d);
    printf("Die Eingebene Zahl lautet: %i%i%i%i\n",a,b,c,d);
    printf("Dezimalzahl: %f",a*pow(8.0,3)+b*pow(8.0,2)+c*pow(8.0,1)+d);}

    Hoffe ihr könnt mir ein bisschen helfen. Bin absoluter Anfänger.

    LG



  • Du kannst dir die Werte von den Ziffern in einer Code-Tabelle ansehen. Üblich ist ASCII.

    Da die Ziffern aber fortlaufend und aufsteigend sein müssen, kannst du auch einfach das Zeichen für die Nulle abziehen:

    a = z - '0';
    

    Einfacher ist es, die Ziffern in ein Array einzulesen und dann damit zu arbeiten.

    char Ziffern[5] = {0};
    int Wert = 0;
    
    Ziffern einlesen
    
    for(int i = 0; i< 4;i++) 
    { Wert *= 8;
      Wert += Ziffern[i] - '0';
    }
    
    Wert ausgeben
    

Log in to reply