C Verständnisproblem: Bedingungen mit Logik Operatoren

OP #2964024
Lesenswert?
• ▲
▼
Hallo, ich habe ein Problem. Ich versuche gerade einen Quellcode eines 
fremden Projektes nachzuvollziehen.
Das klappt auch ganz gut nur bei der Schleife habe ich ein Problem.

while(!(PINC&(1<<2)))

Nach dem Was ich bisher zu wissen glaube, wenn die Eingabe an PINC zb. 
so aussieht:  00000100
Und (1<<2) so: 00000100

Das jetzt als UND verknüpft: 00000100

while(!(00000100)) und eine while-schleife wiederholt sich solange, 
solange der Ausdruck in den Klammern wahr(true) ist.
Ist jetzt 00000100 true?
#2964049
Lesenswert?
• ▲
▼
Max B. schrieb:
> Nach dem Was ich bisher zu wissen glaube, wenn die Eingabe an PINC zb.
> so aussieht:  00000100
> Und (1<<2) so: 00000100
>
> Das jetzt als UND verknüpft: 00000100

Richtig.

Max B. schrieb:
> while(!(00000100)) und eine while-schleife wiederholt sich solange,
> solange der Ausdruck in den Klammern wahr(true) ist.

while(x) läuft so lange, wie x wahr ist. In C ist der Wert 0 falsch und 
alle anderen Werte wahr. Das Aufrufezeichen negiert den Wert (aus wahr 
wird falsch, aus falsch wird wahr).

00000100 ist wahr, denn es ist nicht 0.
!(00000100) ist falsch, denn 00000100 ist wahr.

Die Schleife while(!(00000100)) läuft also nicht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.