Bitoperationen, welche Ergebnisse?

Gast #618350
Lesenswert?
• ▲
▼
Ich verstehe nicht ganz, welches Ergebnis z.B. das hier liefert:
1
BYTE a = 0b00010001;
2
BYTE b = 0b10000000;
3

4
return a||b

und welches Ergebnis würde eine Und-Verknüpfung liefern und warum?
Das steht leider nicht so ausführlich in der Artikelsammlung.

Muss jedes der acht Verknüpfungen eines Bytes true liefern oder reicht 
nur ein true aus? Es fehlt die Logik dahinter.
#618355
Lesenswert?
• ▲
▼
Dein Code wird true (Logischer Wert "true", das ist meistens irgendein 
Wert ungleich 0) liefern, da sowohl a als auch b true (ungleich 0) sind. 
Bei a && b wäre das Ergebnis ebenfalls true, da eben BEIDE true sind 
(Bei || reicht eines). || und && sind aber logische Operationen, keine 
binären. a | b ergäbe dann 0b10010001 und a & b eben 0.
#618462
Lesenswert?
• ▲
▼
Maxim wrote:
> Ich verstehe nicht ganz, welches Ergebnis z.B. das hier liefert:
>

BYTE a = 0b00010001;
BYTE b = 0b10000000;

return a||b

Das gibt "1" als Ergebnis.

> und welches Ergebnis würde eine Und-Verknüpfung liefern und warum?
> Das steht leider nicht so ausführlich in der Artikelsammlung.
Die "&&"-Verknüpfung liefert in diesem Fall auch eine "1" als Ergebnis.

> Muss jedes der acht Verknüpfungen eines Bytes true liefern oder reicht
> nur ein true aus?
Die Operatoren "&&" und "||" sind die logischen Operatoren. Sie
überprüfen, ob die Werte links und rechts von ihnen "wahr" oder "falsch"
sind und führen mit diesen Wahrheitswerten die entsprechenden
Verknüpfungen durch. "wahr" ist dabei ALLES, was nicht "0" ist!

Da im obigen Beispiel beide Operanden ungleich Null sind, liefern beide
Operanden ein "wahr", also eine "1" zurück.

Mit den bitweisen Operatoren "&" und "|" ist das anders. Dabei werden
die Operanden Bit für Bit miteinander verknüpft. Mit den obigen Werten
wäre
a | b == 10010001b
a & b == 00000000b

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.