Results 1 to 3 of 3
  1. #1

    Title
    Veteran
    Join Date
    Mar 2009
    Posts
    1
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts

    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!

  2. #2
    Plantschkuh!'s Avatar
    Title
    Dipl.Ing
    Join Date
    Jun 2003
    Location
    mal hier, mal da
    Posts
    2,581
    Thanks Thanks Given 
    365
    Thanks Thanks Received 
    496
    Thanked in
    323 Posts
    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.
    *plantsch*

  3. #3
    Adok's Avatar
    Title
    Baccalaureus
    Join Date
    Sep 2004
    Location
    Wien
    Posts
    994
    Thanks Thanks Given 
    105
    Thanks Thanks Received 
    103
    Thanked in
    85 Posts
    Quote Originally Posted by Plantschkuh! View Post
    Um die Bit-Darstellung deiner float-Zahl in ein long zu kriegen, kannst du memcpy verwenden.
    Könnte man es nicht einfacher lösen? Wäre es nicht möglich, einem long-Pointer die Adresse der float-Variablen zuzuweisen?

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •