Forum: Mikrocontroller und Digitale Elektronik ein bit aus einem Byte auslesen


von unbekannt (Gast)


Lesenswert?

kann jemanden mir sagen, wie ich ein bit aus einem Byte auslese.

int Variable =0xAA;
int Position;
int Ergebnis;
Beispiel:das 2 bit auslesen und in einer Variable speichern

von Peter II (Gast)


Lesenswert?

int Variable =0xAA;
int Position = 2
int Ergebnis = ( Variable >> Position ) & 1

von Jeffrey L. (the_dude)


Lesenswert?

du musst das Byte mit einer Bitmaske verunden!
Dann hast Du an der Stelle, an welcher das gewünscht bit sit, entweder 
eine "1" oder eine "0". Bei Bedarf kann man das Bitt dann noch nach 
rechts schieben dass es an erster Stelle kommt, also 2^0.

variable 0xAA
Bit2 0x04 // von null ab gezählt, sonst 0x02!?

Ergebnis = 0xAA & 0x04;
Ergebnis wäre hier 0x00;

Bit Nr 1
Ergebnis = 0xAA & 0x02;
Ergebnis = 0x02;

Ergebnis >>= 1;
Ergenis jetzt "true"!

von XXX (Gast)


Lesenswert?

Hallo

Kukkst du hier:

http://www.mikrocontroller.net/articles/Bitmanipulation

Gruß
Joachim

von Oliver J. (skriptkiddy)


Lesenswert?

1
if (Variable&(1<<Position))
2
  Ergebnis=1
3
else
4
  Ergebnis=0;

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

unbekannt schrieb:
> Beispiel:das 2 bit auslesen und in einer Variable speichern
Welchen Typ hat die Variable?

Su solltest vorteilhafterweise so sagen:
Wenn das 2. Bit nicht gesetzt ist, dann soll eine Variable den Wert 0 
haben. Ist es gesetzt, soll sie einen Wert ungleich null haben.

Dann geht es nämlich ganz einfach:
1
  uint8_t Bit = Bithaufen&(1<<Position);

Und abgefragt wird dann so:
1
  if (Bit) // Bit gesetzt 
2
  {
3
     ...
4
  }
5
6
  if (!Bit) // Bit = 0
7
  {
8
     ...
9
  }

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.