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 Verdeutlichungunsigned 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.