Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Einzelne Bits aus Variable auslesen
ThyMoe
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Einzelne Bits aus Variable auslesen

beantworten | zitieren | melden

Hallo,
ich programmiere gerade eine Oberfläche für eine Steuerung. Von der Steuerung schreibe ich mehrere Statusbits in eine uint Variable und übergebe diese Variable an die Oberfläche. Jetzt möchte ich in meinem C# Programm die Bits einzeln wieder auslesen, finde hierzu aber keinem richtigen Aufruf.
Kann mir bitte jemand sagen wie ich in C# auf einzelne Bits einer Variable zugreifen kann?
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2126

beantworten | zitieren | melden

Mit einer Zahl die nur das eine Bit gesetzt hat (1, 2, 4, 8....).
Die Zahl mit & auf deine Variable verknüpft ist ungleich 0 wenn das Bit gesetzt ist. Die Zahl mit | auf die Variable verknüpft ergibt die Variable mit gesetztem Bit.
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7541
Herkunft: Waidring

beantworten | zitieren | melden

Hallo ThyMoe,

siehe [Artikel] Bitoperationen in C#

mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Member

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1480
Herkunft: Düsseldorf

beantworten | zitieren | melden

Wenn Bitoperationen nicht unbedingt notwendig sind, wäre es dann nicht einfacher, ein Enum zu verwenden?

Am Ende ist ein Enum-Wert auch nur ein int, byte, oder was Du anderes angibst, nur dass in diesem Fall fest vorgegebene Werte einem Namen zugeordnet sind und sich damit deutlich angenehmer nutzen lassen.
Ganz nebenbei gibt es noch das FlagsAttribut
private Nachricht | Beiträge des Benutzers
ThyMoe
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

Hallo gfoidl,

Den Artikel habe ich schon gelesen.

Wenn ich die Variable mit dem & Operator verknüpfe bekomme ich immer die Fehlermeldung: Eine implizite Konvertierung vom Typ 'uint' in 'bool' ist nicht möglich.


                Steuerbit = Steuerwort & 1;
private Nachricht | Beiträge des Benutzers
Jamikus
myCSharp.de - Member



Dabei seit:
Beiträge: 251
Herkunft: Oberhausen (NRW)

beantworten | zitieren | melden

[Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)


Versuchs mal mit Konvertierung
private Nachricht | Beiträge des Benutzers
thomas.at
myCSharp.de - Member



Dabei seit:
Beiträge: 102
Herkunft: Österreich / Wien

beantworten | zitieren | melden

Hallo

Ich nehme mal an "Steuerbit" ist ein Boolean? Dann musst Du folgendes schreiben:

 
Steuerbit = ((Steuerwort & 1) == 1);
bool Bit2 = ((Steuerwort & 2) == 2);
usw.

Thomas
private Nachricht | Beiträge des Benutzers