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


Anmelden zum Antworten