hallo ,
ich hab ein klein Widget mit 8 Tasten (QPushButton ) und jetzt will ich jede Taste mit einem Bit einer "char" Variable verbinden und zwar :
drücke ich die 1. Taste wird das 1. Bit gesetzt
drücke ich die 2. Taste wird das 2. Bit gesetzt......... usw.
wie kann das programmieren?
ich wäre für eure Hilfe sehr dankbar!
Bit in einem Byte Setzen
-
Lord_Luncher
- Beiträge: 11
- Registriert: 28. Februar 2010 19:21
ich weiss nicht ob ich dich richtig verstanden habe aber eine Möglichkeit wäre:
Char val = 0;
Jeweils bei dem Klick auf ButtonX wobei X 0-7 ist:
val += 2^X; // Bit X auf 1 setzen
Und beim Release:
val -= 2^X; // Bit X auf 0 setzen
Achtung wenn ein bit 2 mal gesetzt wird dann ist zwar der bit wieder null aber der nachfolgende bit ist 1 wenn der vorher 0 war.
Um das zu verstehen musst du dich mit dem dualsystem auseinander gesetzt haben.
Ich hab keine ahnung ob das das ist was du suchst... dafür müsstes du dein Problem genauer beschreiben.
Char val = 0;
Jeweils bei dem Klick auf ButtonX wobei X 0-7 ist:
val += 2^X; // Bit X auf 1 setzen
Und beim Release:
val -= 2^X; // Bit X auf 0 setzen
Achtung wenn ein bit 2 mal gesetzt wird dann ist zwar der bit wieder null aber der nachfolgende bit ist 1 wenn der vorher 0 war.
Um das zu verstehen musst du dich mit dem dualsystem auseinander gesetzt haben.
Ich hab keine ahnung ob das das ist was du suchst... dafür müsstes du dein Problem genauer beschreiben.
Ne andere Möglichkeit wären Bit-Operatoren:
siehe z.B. http://de.wikibooks.org/wiki/C%2B%2B-Pr ... pulationen
Wenn du die Bits beim 1. klicken auf 1 und beim 2. dann wieder auf 0 setzen willst, kannst du z.B. das Bitweise XOR (^) verwenden.
Wie es genau funktioniert solltest du im Internet ausführlich erklärt finden.
siehe z.B. http://de.wikibooks.org/wiki/C%2B%2B-Pr ... pulationen
Wenn du die Bits beim 1. klicken auf 1 und beim 2. dann wieder auf 0 setzen willst, kannst du z.B. das Bitweise XOR (^) verwenden.
Wie es genau funktioniert solltest du im Internet ausführlich erklärt finden.
Wenn ich mich nicht arg vertute geht das so
x |= (1 << 5); Setzte das 5. Bit in x auf 1
x &= ~(1 << 5); Setzt das 5. Bit in x auf 0
Siehe hier http://www.mikrocontroller.net/articles/Bitmanipulation
x |= (1 << 5); Setzte das 5. Bit in x auf 1
x &= ~(1 << 5); Setzt das 5. Bit in x auf 0
Siehe hier http://www.mikrocontroller.net/articles/Bitmanipulation