binäre Darstellung eines float

Ich habe folgendes Problem: Ich soll ein C-Programm schreiben, dass eine Zahl f vom Datentyp float darstellt. un habe ich herausgefunden, dass man float-Variablen nicht shiften kann. Mir wurde der Tipp gegeben einen Zeiger zu verwenden und diesen zu shiften. Zwar hab ich dahingehend herumexperimentiert, jedoch kam ich zu keinem sichtbaren Ergebnis. Ich weiß nicht mehr weiter und wende mich nun hilfesuchend an euch. Hoffe ihr könnt mir helfen.

Dank im Voraus.

MfG Christian

Hallo Christian,

ich weiss zwar nicht, was Du meinst, aber ich denke:

  • Du sollst die Bits eines Floats am Bildschirm darstellen,
    zuerst dass MSB und dann weiter bis zum LSB, als 0 oder 1?
  • Du weisst nicht, wie man dieses Bits „extrahieren“ kann?

Dann wüsste ich was:

Der Tip mit dem Pointer meint dann vermutlich, damit die Speicherstelle des Floats als z.B. unsigned char anzusprechen. Das geht z.B. so:

// define, um per cast auf unsigned char beliebige Speicherstellen einer Variable anzuschauen

#define BACC(var, n) \*((unsigned char\*)&(var) + (n))

{
unsigned char bin\_byte;
float f = 3.14159265;
int i;

 for(i = 0; i 

Anstelle der Hex-Ausgabe kannst Du sicher selbst binär werden, da du bin\_byte jetzt ganz normal shiften kannst.

Wenn Du mir einen gefallen tun willst, versuche mal herauszubekommen, was BACC macht, evt. C-Referenzbuch Kapitel Pointer dazunehmen

Gruß
achim

Ich habe folgendes Problem: Ich soll ein C-Programm schreiben,
dass eine Zahl f vom Datentyp float darstellt. un habe ich
herausgefunden, dass man float-Variablen nicht shiften kann.
Mir wurde der Tipp gegeben einen Zeiger zu verwenden und
diesen zu shiften. Zwar hab ich dahingehend
herumexperimentiert, jedoch kam ich zu keinem sichtbaren
Ergebnis. Ich weiß nicht mehr weiter und wende mich nun
hilfesuchend an euch. Hoffe ihr könnt mir helfen.

Hallo,
wenn ich dich richtig verstanden habe sollst du eine Float-Zahl Ausgeben ohne dabei auf printf() oder ähnliches zurückzugreifen ?

Infos zur Gleitkommadarstellung gibt es z.b hier:
http://de.wikipedia.org/wiki/IEEE_754
http://en.wikipedia.org/wiki/IEEE_floating-point_sta…

Grüße,
Daniel Raffler