Zustände, Bits und Logisches Problem ...



  • Hallo,

    Ich hab mal wieder ein logisches Problem, und zwar möchte ich ein Programm welches
    mir ein Menü mit 18 Punkten ausgibt.
    Meine Überlegung ist das ganze mit BIT Zuständen zu codieren und dann je nachdem welcher Zustand gewählt ist, die Menüpunkte zusetzen.
    Ich habe dafür 8 bit also 256 Zustände reserviert, jedoch besteht mein Problem darin, das ich nicht weiß wie ich das Programieren soll.

    Wäre nett wenn mir jemand helfen könnte.

    Danke



  • Moin,

    zuerst einmal denke ich, dass du einen kleinen Gedankenfehler machst.
    Denn ich nehme an, du möchtest die Menuepunkte unabhängig voneinander setzen können, und nicht nur jeweils einen.
    Also reichen 8Bit nicht aus, da du ja 2^18=262144 Möglichkeiten hast.

    Vorschlagen würde ich ein Bitfeld.
    hier erklärt: http://www.uni-bayreuth.de/departments/math/~rbaier/lectures/c_ss2003/html/node152.html

    Bsp für 3 Menupunkte:

    #include "stdio.h"
    
    struct Menu
    {
      unsigned int nMenu1  : 1, nMenu2  : 1, nMenu3 : 1;    
    };
    
    int main()
    { 
      Menu my_Menu;
    
      my_Menu.nMenu1 = 1;   //Punkt 1 aktivieren
      my_Menu.nMenu2 = 0;   //Punkt 2 deaktivieren
    
      if (my_Menu.nMenu1) printf("Punkt 1 ist aktiviert\n");
        else printf("Punkt 1 ist nicht aktiviert\n");
    
      return 0; 
    }
    

Anmelden zum Antworten