Float und Bitoperatoren

  • Hallo!


    Ich möchte auf eine Float Bitoperatoren anwenden, warum geht das nicht? Gibt es alternativ einen anderen 32- bit Datentyp damit ich bit-Operatoren verwenden kann, oder können diese nur für char verwendet werden?


    Danke und liebe Grüße!

  • Bit-Operatoren können nur auf den Integer-Typen verwendet werden: char, short, int, long, long long (und noch ein paar sind mit C99 dazugekommen). Idealerweise auf den unsigned-Varianten. Die exakte Größe der Typen kann von System zu System variieren, aber long muß überall mindestens 32 Bit haben und sollte somit üblicherweise groß genug sein.


    Um die Bit-Darstellung deiner float-Zahl in ein long zu kriegen, kannst du memcpy verwenden.


    Zur Frage, warum man nicht direkt auf floats Bit-Operatoren anwenden kann: Es ist normalerweise besser, sich nicht den Kopf über die genaue Darstellung von floats zerbrechen zu müssen. Ist das LSB das Vorzeichenbit, oder doch das MSB? Wo ist die Mantisse und wieviele Bits hat sie? Was hat es für Auswirkungen, wenn ich Bit 17 invertiere? Es gibt wesentlich interessantere Aufgabenstellungen im Bereich der Informatik.