Bitoperationen, welche Ergebnisse?

Gast #618350
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
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
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

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.