Auf Thema antworten

Hallo zusammen !


Ich habe hier eine Funktion, die ich nicht ganz nachvollziehen kann:


[CODE]public static boolean isBitAvailable(int number, int position) {

  

    position--;

    number = number >> position;

 

    if (number % 2 == 0) {  

         // Bit ist nicht gesetzt   

        return false;

    } else {     

         // Bit ist gesetzt

        return true;

    }

}[/CODE]


Diese Funktion soll ermitteln, ob ein Bit an einer bestimmten Stelle gesetzt ist. Dazu wird ihr eine beliebige Zahl übergeben (nehmen wir mal an es sei die 8) und als zweiter Parameter die Position, die ich ermitteln möchte (gehen wir mal von der 3 in diesem Fall aus).


Nun müsste doch eigentlich durch die Rechtsverschiebung eine ungerade Zahl herauskommen und somit das Bit gesetzt sein, oder sehe ich das falsch?


MFG


Die 8 im Binärformat sehe so aus: 0000 1000

Nun will ich prüfen, ob an der 4 Stelle das Bit gesetzt ist, also tätige ich folgenden Methodenaufruf:


isBitAvailable(8,4);



Oben