Char Array (IEEE-754) in float value umwandeln

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Char Array (IEEE-754) in float value umwandeln

    Hallo,

    ihr seid meine letzte Hoffnung.
    Ich hab ein Char Array[4] bekommen.

    array[0] = 0;
    array[1] = 0;
    array[2] = 180;
    array[3] = 65;

    Das sind 4bytes welche eine float nach IEEE-754 repräsentieren. (0x41b40000) dezimal sind das 22.5
    Wie kann ich das nun in ein float umwandeln? Ich möchte nachher damit rechnen. Mit meinen 22.5 :)

    Danke schon mal im voraus ihr seid super.
    in Bearbeitung
  • Genau wie Amin schreibt. Als Ergänzung dazu: Ich würde statt char einen Typen mit fester Größe verwenden, z.B. uint8_t. Mir ist es zwar noch nie passiert, dass chars nicht genau ein Byte lang sind, aber es macht im Code klarer, dass du auf einzelne Bytes zugreifst (und 180 ist offensichtlich unsigned).
    Multigrad - 360°-Produktfotografie für den Mac
  • zerm schrieb:

    Der Ansatz mit dem Union sollte funktionieren, aber soweit ich mich recht erinnere ist das (im C++) Standard verboten (bzw. nicht garantiert korrekt). Will aber grad nicht nachschauen :)

    Es ist in C nicht garantiert korrekt, weil Alingment eine Rolle spielt. Endianess ohnehin.
    "
    Spielt es keine Rolle, weil man etwa als Member der Union Strukturen hat, die eine gleiche Anfangssequenz haben, wird es deshalb auch garantiert.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    zerm schrieb:

    Der Ansatz mit dem Union sollte funktionieren, aber soweit ich mich recht erinnere ist das (im C++) Standard verboten (bzw. nicht garantiert korrekt). Will aber grad nicht nachschauen :)

    Es ist in C nicht garantiert korrekt, weil Alingment eine Rolle spielt. Endianess ohnehin.
    "
    Spielt es keine Rolle, weil man etwa als Member der Union Strukturen hat, die eine gleiche Anfangssequenz haben, wird es deshalb auch garantiert.

    Wie gesagt, ich erinner micht nicht mehr genau. Aber es wird irgendwie gesagt, dass man unter gewissen Bedingungen nur das Feld eines Union lesen darf, dass man zuletzt vorher geschrieben hat. Ich schau bei Gelegenheit noch einmal nach.
    C++