Ein array in eine zahl umwandeln?
-
Hallo,
ich versuche verzweifelt ein int array in ein int zahl umzwandeln!
kann mir da jemand helfen?
Danke im voraus!Gruss neomay
-
du meinst in ziffern oder was? beschreib mal etwas genauer was du vor hast
-
Falls die einzelnen Array Elemente die Ziffern einer Gesamtzahl darstellen soll ein Tipp:
Die "Wertigkeit" eines Array-Elements erhältst du per a[i]*10^(L-i-1), wobei a ein int-Array, L die Länge von a und i der Index ist.
-
[code]
result = 0;
length = Länge des Arrays;// Man geht im wesentlichen das Array von hinten weg durch (-> length - i)
// (natuerlich nur sofern das letzte Element den geringsten Stellenwert hat,
// ansonsten ist es genau umgekehrt) und zaehlt im Wesentlichen die Ziffer
// umgerechnet mit dem Stellenwert hinzu.
for(i = 0; i < length; ++i)
result = result + array[length - i] * radix ^ i;// array[length - i]:
// nächste Ziffer von hinten weg// radix ^ i:
// Stellenwert an der Position i, wobei radix die Basis des gewuenschten
// Zahlensystems ist (z.B: 10 im dekadischen oder 2 im binären System)// array[length - i] * radix ^ i:
// Ergibt den Wert der Ziffer an ihrer Stelle. Konkretes Beispiel: 24
// die Ziffer 2 ist an der Stelle 1 (von rechts weg gezählt) und hat
// somit einen Wert von 2 * 10^1 : 20 -> stimmt!// result + array[length - i] * radix ^ i:
// Es werden nun einfach iterativ alle Werte aufgezaehlt, bei 24 waere
// das eben 20 + 4 .. was korrekterweise 24 ergibt.
[code]
-
Danke für die schnellen Antworten!
@öfgjsöfdlgöasdlfüpeksgsdf die for schleife muss aber andersrum durchlaufenfor (int i=(length-1); i>=0; i--) result = result + zahl[i]*pow(10,i);(fals einer das gleiche Problem hat)
Danke an alle!
Gruss NeoMay
-
NeoMay schrieb:
Danke für die schnellen Antworten!
@öfgjsöfdlgöasdlfüpeksgsdf die for schleife muss aber andersrum durchlaufenfor (int i=(length-1); i>=0; i--) result = result + zahl[i]*pow(10,i);(fals einer das gleiche Problem hat)
Danke an alle!
Gruss NeoMayBenutz lieber das Hornerschema:
for (int i=(length-1); i>=0; i--) result = result * 10 + zahl[i];Wenn Σzahl[i]*10^i gewuenscht,
ansonsten Schleife in anderer Richtung durchlaufen.