Forum: Mikrocontroller und Digitale Elektronik Programmierung ATMega64 Codevision


von Michael_SS (Gast)


Lesenswert?

Hallo Leute.

Ich habe eine Frage.

Ich habe in einem Programmbesipiel folgende if- Anweisung gefunden:

if (!( msg[0] & (1<<BIT_0) ))
 {

 }

Definition:
msg[0] = 0b10100000
BIT_0 = 0 ist als Konstante definiert

Was passiert hier? Wird hier abgefragt ob eine logische UND Verknüpfung 
0 ergibt und dann der Inhalt der If Anweisung ausgeführt wird?

Was bewirkt der Ausdruck 1<<BIT_0?

Danke

von besserwisser (Gast)


Lesenswert?


von Michael_SS (Gast)


Lesenswert?

Ich schiebe also die 1 um BIT_0 Positionen nach links. Ist das korrekt. 
Demnach muss ich folgendes tun:

 10100000
&00000001
---------
=00000000

Wäre somit die Bedingung if (!......) erfüllt? Heißt doch wenn "nicht" 
und 0b00000000 ist doch nicht!? Richtig?

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.