Java Bitoperationen, bit gesetzt oder nicht?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ja, die 5 wird binär interpretiert, weil der Operator int & int === > int binär funktioniert.

int hat 32 Bit.

Alle 32 Bit vom 1. Argument werden mit dem korrespondierenden Bit des 2. Argument mit Binär-UND verknüpft. Als Ergebnis hast du wieder ein int mit 32-Bit.

5 = 00000000 00000000 00000000 00000101

Für i = 2 ist (1<<i) = 00000000 00000000 00000000 00000100

Damit hast du an der drittletzten Stelle eine Übereinstimmung von den Bits der beiden Argumente, die gesetzt sind. Damit ist dann auch im Ergebnis (n & (1 << i)) ein Bit an der Stelle gesetzt und der Wert von (n & (1 << i)) = 4 = 1 << 2. Der Wert ist != 0.

Dir sollte bekannt sein, dass Im Computer prinzipiell ALLES binär gespeichert ist?

Mit den binären Operatoren operierst du auf den Bits einer Variablen, die Variable wird nicht erst in Bits konvertiert, sie besteht bereits aus Bits.