Binärsystem -> Dezimalsystem



  • Hi!
    Wie kann ich eine Zahl, die bitweise in einem short-Array gespeichert wird, zwecks Ausgabe ins Dezimalsystem umwandeln?



  • enum {length = 16};
    short array[length]; // 0 oder 1
    
    unsigned zahl = 0;
    unsigned stelle = 1;
    
    for (unsigned i = 0; i++; i < length)
    {
       zahl += stelle * array[i];
       stelle *= 2;
    }
    


  • Vielleicht habe ich es unpräzise formuliert. Ein Element des Short-Arrays beinhaltet 16 Bits (eh klar). Das heißt bei einem Array mit 16 Elementen habe ich dann 16*16 (=256) Bits, die ich beachten muss. Das höchstwertige Bit hat dann einen Wert von 2^256. Diese Zahl passt leider in keinen Standarddatentyp.
    Deshalb wollte ich die Werte in einem char-Array (Werte von 0 bis 9) speichern.
    Noch ein bisschen Code zur Verdeutlichung

    unsigned short harr[HUGE_MAX];
    // harr[0] = 0010010010111011 
    // harr[1] = 1110101101100011
    // ...
    

    Die Bits im ersten Element haben die Nummern 0 bis 15, das zweite 16 bis 31,...
    Das heißt, dass 24ste Bit repräsentiert 2^24.


Anmelden zum Antworten