Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe eine int-Variable mit einem Wert darin und möchte nun wissen ob im Binärbereich
z.B. die dritte Stelle mit einer 1 belegt ist oder mit einer 0.
Danke, aber leider kann ich nicht nachvollziehen was du da machst.
Wäre nett wenn du das noch etwas erklären könntest was die die if-Abfrage genau macht.
Den Begriff "addieren" finde ich im Kontext der Binäritmethik höchst unglücklich gewählt. (AND ist von Niki ansonsten korrekt erklärt)
Denn die Binäroperatoren "&" (AND) "|" (OR), "^" (XOR) und "~" (NOT) arbeiten mit Masken, also "maskieren" sie.
Hier ein komplettes Beispiel, was da so passiert - der Vollständigkeit halber
Code:
& (AND)
0101
& 1110 (<- die Maske)
--------
0100
Bedeutet, daß ein AND alle Bits wegmaskiert (auf null setzt), die in der Maske auch auf null sind, und alle Bits übernimmt, die in der Maske auf 1 sind.
Im Klartext: mit AND kann ich Bits "ausmaskieren" was letztendlich an eine Subtraktion erinnert. Daher funktioniert das Prüfen auf gesetzter Bits gut mit AND, weil man alle Bits (bis auf das eine, das einen interessiert), ausmaskiert.
Das OR ist das Gegenstück zum AND, denn statt Bits auszumaskieren, werden Bits hinzugefügt, was dann an eine Addition erinnert. Will man z.B. das 2. Bit (Zählung beginnt bei 0!) setzen, muss man nur mit 0100 "ORen" - danach ist das 2. Bit definitiv gesetzt.
Das "Exklusive Oder" XOR ist ein Spezialfall des OR - hier werden auch BITs gesetzt, allerdings heben sich zwei einsen wieder auf und werden zur null. Man könnte auch sagen, das XOR ist eine Mischung aus AND und OR.