Double Byte



  • Hallo,

    Ich habe ein Problem bezüglich der double-Variable und zwar möchte ich die Bytes ausgegeben die zum Speichern für die Zahlen (0.0; 1.0; -1.0) verwendet werden.
    Existiert dafür ein Befehl?
    Desweiteren habe ich noch eine Frage: Wie kann ich überhaupt einen Quellcode hier richtig einfügen?

    mfg Triton90



  • Triton90 schrieb:

    Ich habe ein Problem bezüglich der double-Variable und zwar möchte ich die Bytes ausgegeben die zum Speichern für die Zahlen (0.0; 1.0; -1.0) verwendet werden.
    Existiert dafür ein Befehl?

    Du kannst dir einen char-Zeiger auf den Speicherbereich der Variable holen und die Daten darüber auslesen - ich bin mir aber nicht sicher, wieweit das vom Standard gedeckt ist:

    double wert = -1;
    unsigned char* bytes = (unsigned char*) &wert;
    for(int i=i;i<sizeof(double);++i)
      printf("%02x ",bytes[i]);
    

    Desweiteren habe ich noch eine Frage: Wie kann ich überhaupt einen Quellcode hier richtig einfügen?

    Unter dem Eingabefenster hast du eine Reihe von Buttons, die verschiedene BBCode-Formatierungen anbieten - mit dem ersten (C/C++) bekommst du C-Codeformatierung.



  • Die Datentypen float, double, long double sind vom Standard nicht festgelegt. Macht auch Sinn für verschiedene Betriebssysteme 16/32/64 bit. Jeder Compiler macht da in der Anzahl der Bytes Unterschiede. Sicher ist nur: double ist weniger als long double und float ist weniger als double. Genaueres sollte sich in der Doku des Compilers finden. Nur, wozu willst du bei diesen Datentypen noch an die Bytes heran? 😕 Bedenke, eine Fliesskommazahl besteht aus Mantisse und Exponent. Du kannst dir die Bytes über Zeiger beschaffen, doch selbst wenig damit anfangen. 😞

    edit Korrektur: <= statt nur < muss es heissen.



  • berniebutt schrieb:

    Sicher ist nur: double ist weniger als long double und float ist weniger als double.

    Nein:
    sizeof(float) [e]le[/e] sizeof(double) [e]le[/e] sizeof(long double)


Anmelden zum Antworten