Wie liest man einzeln Bits aus einer int Variable aus?

Um einzelne Bits aus einer int-Variable auszulesen, verwendet man den Shift-Operator sowie die bitweise &-Verknüpfung.

Die Beispielsimplementierung setzt die Methode isBitSet(n, pos) um. Diese Methode gibt true zurück, wenn bei der Zahl n das Bit an der Position pos gesetzt ist.

public static boolean isBitSet(int n, int pos) {
    return ((n >> pos) & 1) == 1;
}

Zuerst wird der Ausdruck (n >> pos) ausgewertet. Der Operator >> (Shift-Operator) verschiebt die Bits von n um pos Positionen nach rechts.
Das Bit an der gesuchten Position pos wird an die Position mit dem Index 0 geschoben.

Sieht man bei einer Zahl vom Wert des Bits am Index 0 ab, ist das Ergebnis einer bitweise &-Verknüpfung von n mit 1 (binär: 0 ... 001) eine Folge von Nullen.

Hat das Bit der um pos Positionen verschobenen Zahl n am Index 0 den Wert 1, liefert eine bitweise &-Verknüpfung mit 1 den Wert 1.
Hat das Bit der um pos Positionen verschobenen Zahl n am Index 0 den Wert 0, liefert eine bitweise &-Verknüpfung mit 1 den Wert 0.

Beispiel:

    0010 1101     (45)
    0000 0101     (45 >> 3)

    0000 0101
&   0000 0001     (1)
-------------
    0000 0001