Logische Operatoren Verständnis

Gast #3495623
Lesenswert?
• ▲
▼
Hallo!
Wir haben bald Klausur und bin auf folgendes im Fragenkatalog 
aufgestoßen:
mask = ~(~0 << n)
mask = ~(~0 << m – n + 1) << n          //m >= n

Was für ein Spaß passiert da?
beim ersten sowas oder: ~(255 << n) und das nochmal negiert ist dann 
was? 255 >> n ->ein Rechtsshiften?

und das Zweite ist mir zu hoch

kann mir da wer helfen?
Is anybody out there?

mfg
mpt
Moderator #3495682
Lesenswert?
• ▲
▼
Spiel das Ganze einfach anhand einiger Beispiele auf (Karo-)Papier
durch. Du wirst dann schnell erkennen, wohin der Hase läuft. Dann
versuchst du, in einem einfachen Satz zu formulieren, welche Bits im
Ergebnis gesetzt sind (abhängig von n und m).

~0 ist übrigens nicht 255, sondern besteht aus sovielen Einsen wie der
int-Datentyp Bits umfasst (i.Allg. 16 oder 32).
Gast #3495846
Lesenswert?
• ▲
▼
Tipp schrieb:
> Verstehen geht mit dem Debugger

In dem Fall nicht.

Verstehen geht mit einem C-Buch. Darin die Kapitel "Operatoren" (was 
machen die komischen Zeichen da überhaupt?) und "Operator precedence" 
bzw. "Priorität" 8wenn da mehrere Operatoren in einer Anweisung stehen, 
in welcher Reihenfolge werden die ausgeführt?).

Und das dann, wie Yalu schon schrieb, zu Fuß auf einem Blatt Papier 
lösen. Schritt für Schritt.

Oliver
#3498044
Lesenswert?
• ▲
▼
Nach dem Studium des K&R verinnerlichen, dass es einen grundlegenden 
Unterschied zwischen 'logischen Operatoren' und 'binären (oder 
bitweisen) Operatoren' gibt.
In manchen Fällen (zb & und &&) sind sie Schreibweisen sehr ähnlich, so 
dass man sie beim schnellen Drüberlesen schon mal verwechseln kann, wenn 
man diesen grundlegenden Unterschied nicht verinnerlicht hat.

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.