unsigned char* --> double
-
Hallo,
ich habe ein unsigned char Array (unsigned char*) und möchte nun jedes einzelne Element in ein double umwandlen (also ein double array generieren...)
Danke schon mal...
mfg
Nabla
-
Leg dir ein entsprechend großes double-Array an und fülle es dann mit den Werten (char kann als Ganzzahltyp (0..255 bzw. -128..127) problemlos in einen double-Wert untergebracht werden).
-
Ja okay, das ist klar. Aber wie geschieht die eigentliche Typumwandlung?
Ich würde die atof-Funktion verwenden, aber die meckert wegen meinem unsigned char...
-
Was genau steht denn in deinem Array? Und was willst du daraus machen?
Auf Anhieb fallen mir mindestens drei Möglichkeiten ein, das char-Array als double zu deuten - und jede erfordert einen anderen Ansatz zur Umwandlung:
- Aneinanderreihung von lesbaren Zahlen - hierfür kannst du man: strtod() verwenden
- Aneinanderreichung von ASCII-Ziffern (jede Ziffer entspricht einem Wert) - die kannst du einzeln zuweisen per
darr[i]=carr[i]-'0';
- Binäre Darstellung einer double-Zahl als sizeof(double) Bytes - das kannst du per man: memcpy() kopieren
-
Sorry, ich bin wohl heute nicht ganz auf der Höhe... Ich kann ja einen einfachen Typecast einbauen:
for (int i = 0; i<nrofelements; i++) { dblarray[i] = (double)chararray[i]; }[
Naja man sollte halt, wenn man erkältet ist nicht programmieren...