Oktal => Dezimal



  • Hallo,

    ich habe eine char Variable:

    char buff[] = "7674"

    wie kann ich nun diese Oktale Zahl, die als char variable da ist, in eine Dezimale Zahl umwandeln? Also es in eine Integer Variable abspeichern?

    MfG



  • Siehe FAQ - "Einmal String nach Zahl und zurück" (fast alle dort genannten Lösungansätze kommen auch mit oktalen und hexadezimalen Zahlen klar).



  • hi, ich hatte diese Übung analog zu binär so gemacht:

    #include <iostream>
     #include <string>
      //...
      unsigned long i, z = 0; string buff = ("7674");
      for ( i = 0; i < buff.length(); i++ ) z = 8 * z + (int)buff[i] - (int)('0');
      cout << buff << "Q" << " = " << z << "D" << endl; 
      // 7674Q = 4028D
    

    Wichtig ist, dass man den ascii wert der '0' abzieht.

    Mir ist noch eingefallen, dass es schneller geht mit Maskierung des high nibbels (Meinung des Tutors):
    for ( i = 0; i < buff.length(); i++ ) z = 8 * z + ((int)buff[i]&0x0F);
    vg tesu


Anmelden zum Antworten