Bitfelder



  • Hallo kann mir jemand sagen, wie ich ein Bitfeld erstelle?
    die syntax dazu kenne ich schon, aber ich weiß nicht wie ich das konkret anwenden kann. Also hier mein Problem, ich will 10 variablen, oder wenn möglich ein array das zehn variablen speichert, in den variablen will ich binäre zahlen abspeichern.
    Kann mir jemand weiterhelfen?



  • Hallo

    int array[10];
    

    Die Interger-Zahlen werden genauso binär gespeichert wie alles andere auch.
    Du must dich nur um die Ausgabe kümmern.

    bis bald
    akari



  • Ja das ist mir schon klar, aber ich will wenn möglich nicht die bitweisen operatoren zur manipulation der variablen verwenden und deshalb wäre ein bitfeld schon geschickt. Oder sollte ich vielleicht doch die bitweisen operatoren verwenden, wie kann ich z.B. sehr schnell prüfen ob das erste bit eines bytes gesetzt ist oder nicht, kann mir das jemand sagen?



  • Hallo

    das problem ist das C++ mit den Build-In Variablen nicht unter 8bit (char) kommt. Also kannst du nicht kleiner als 8bit adressieren.
    Wenn du direkt auf Bits zugreifen willst , must du selber etwas schreiben oder externe Biblitheken suchen und benutzen. Im ersten Fall kommst du dann um Bitoperationen nicht herum.
    Wie Bitoperationen funktionieren kannst du in C-Tutorials nachlesen.

    bis bald
    akari



  • Ja ok, aber kannst mir mich kurz sagen wie ich testen kann ob das erste bit gestetzt ist vielleicht mit unsigned char i;
    if (i/128>=1) so vielleicht, ist das schnell? oder gibts was schnelleres?



  • ganymed schrieb:

    ... aber ich will wenn möglich nicht die bitweisen operatoren zur manipulation der variablen verwenden

    Warum nicht?

    ganymed schrieb:

    ... wie kann ich z.B. sehr schnell prüfen ob das erste bit eines bytes gesetzt ist oder nicht, kann mir das jemand sagen?

    bool isBitSet(int value, int bitPos)
    {
       return (value>>bitPos)&1; 
    }
    

    Das ist sehr schnell


Log in to reply