Floatvariablen Adresse an Char Pointer?

xaedes

Grünschnabel
Hallo, ich versuche mit char* den Speicher von ner Float Variable auszulesen.
An sich wäre es ja logisch wenn ich das so machen könnte, dass ich nen Charpointer nehme und dem die Adresse mit &fZahl zuweise und dann so die Bytes auslese
Geht aber nicht.
... Von wegen Typumwandlung gibts dann Stress...

" Konvertierung von "float *" nach "char *" nicht möglich "

was kann man da machen? Habt ihr ne Idee Bitte helft... das ist alles so krank..
 
Aber wie les ich dann den Speicher aus?
Dachte mir das würde so gehen, aber da kommen seltsame werte raus...
PHP:
void readOutMemory(char *p) 
{ 
  for (int i=0;i<4;i++) 
  {
  
    cout << ( char(*p))<<" ";
    p++;
  }
}
 
naja ich schätze mal er gibt die bytes selber aus, so was da für symbole kommen
wenn ich nen << hex dazwischen packe, also:

PHP:
cout << hex << ( char(*p))<<" ";

siehts so ziemlich genauso aus..

Statt hexadezimalzahlen kommen nur asciizeichen

Und wenn ich char vorher in int umwandle (int)(char(*p))
gibt der mir "70 ffffffb6 34 0" aus... kann ja auch net sein...
 
Hallo,

Code:
#include <iostream>

int main()
{
    float f = 3.1415;
    char *ch = (char *)&f;

    for (int i=0; i<4; ++i) {
        std::cout << std::hex << (int)*ch << " ";
        ch++;
    }

    return 0;
}
Ergibt bei mir:
Code:
56 e 49 40
Das sollten auch die richtigen Werte sein.

Grüße,
Matthias
 
Zurück