base64



  • Hallo

    Also eventuell versuche ich hier gerade etwas, was nicht geht... Kann ich einen Double-Wert in Base64 kodieren?? Die Base64-Kodierung sieht ja keinen Punkt vor, oder habe ich da etwas falsch verstanden...

    Danke schonmal im Vorraus

    Gruß Manfred

    ps: komischerweise funktioniert das bei mir mit int hervorragend....



  • mHochbach schrieb:

    Also eventuell versuche ich hier gerade etwas, was nicht geht... Kann ich einen Double-Wert in Base64 kodieren?? Die Base64-Kodierung sieht ja keinen Punkt vor, oder habe ich da etwas falsch verstanden...

    Du hast etwas falsch verstanden.

    Fangen wir damit an, dass ein double auch keinen Punkt enthält, sondern nur kodiert, ob die Zahl positiv oder negativ ist, den Wert der Zahl und einen Exponenten.

    Base64 ist egal, was Du reinwirfst, es landet eh alles in einem bitweisen Reißwolf.

    Base64 kodiert keine Integer, sondern es werden nur 3 Ziffern zur Basis 256 in 4 Ziffern zur Basis 64 umgerechnet - eher geschoben. Möchtest Du ein Double umrechnen, so sind das 8 Ziffern zur Basis 256, die Du kodieren musst.
    Aus deinem double muss also ein char Array werden.

    double x;
    char * array = static_cast< char * >( &x );

    mHochbach schrieb:

    ps: komischerweise funktioniert das bei mir mit int hervorragend....

    Kommt drauf an, wie Du Deinen Algorithmus aufbaust. Aber auch ist ein double nichts anderes als zwei Integer.

    Die Antwort wird Dir vermutlich nur bedingt weiterhelfen, aber das könnte auch daran liegen, dass Deine Frage eigentlich keinen Ansatz liefert, Dein Problem konkret zu lösen.
    Auf jeden Fall kannst Du doubles durch base64 jagen.



  • @mHochbach:
    Codierst Du vielleicht Stringrepräsentationen von int und double? Die frage nach dem "." kommt mir seltsam vor.

    Xin schrieb:

    double x;
    char * array = static_cast< char * >( &x );
    

    Einigen wir uns auf

    double x;
    char* array = reinterpret_cast<char*>(&x);
    

    ? 🙂

    Grüsse

    *this



  • Vielen Dank für die schnelle Antwort....

    Naja, das Problem sitzt mal wieder zwischen den Ohren 🙄

    Habe irgendwo einen dummen Fehler gemacht und jetzt läuft es.. Welcher Fehler das war, weiß ich noch nicht einmal...

    Trotzdem Dankeschön

    Gruß Manfred


Anmelden zum Antworten