Feedback

C# - Prüfung, ob bestimmtes Bit in Byte gesetzt ist.

Veröffentlicht von am 5/20/2011
(0 Bewertungen)
Eine einfache Methode zur Überprüfung einzelner Bits in einem Byte. Als Parameter werden ein Byte (0x5A) und eine Bitnummer (0-7) übergeben. Returnwert ist ein boolean (true wenn Bit gesetzt ist, sonst false). Die Fehlerbehandlung ist nur auf das Notwendigste beschränkt.
        /// <summary>
        /// Prüft, ob ein angegebenes Bit im Byte gesetzt ist.
        /// </summary>
        /// <param name="b">Byte, welches getestet werden soll.</param>
        /// <param name="BitNumber">Das zu prüfende Bit (0 bis 7).</param>
        /// <returns>gesetzt=true, nicht gesetzt=false</returns>
        public static bool CheckBitSet(byte b, int BitNumber)
        {
            //Kleine Fehlerbehandlung
            if (BitNumber < 8 && BitNumber > -1)
            {
                return (b & (1 << BitNumber)) > 0;
            }
            else
            {
                throw new InvalidOperationException(
                "Der Wert für BitNumber " +  BitNumber.ToString() + " war nicht im zulässigen Bereich! (BitNumber = (min)0 - (max)7)");
            }

        }
Abgelegt unter Byte, Bit, Prüfen.

4 Kommentare zum Snippet

Pirmin schrieb am 5/20/2011:
Ich würde bei der Fehlerbehandlung auch auf mögliche negative Zahlen testen.
spezi schrieb am 5/21/2011:
geht auch kürzer:

public static bool CheckBitSet(byte b, byte BitNumber)
{
if (BitNumber < 8)
{
return (b & (1 << BitNumber)) > 0;
}
else
{
throw new InvalidOperationException(
"Der Wert für BitNumber (byte) war zu gross! (BitNumber = (min)0 - (max)7)"
);
}
}
Martin Dauskardt schrieb am 5/24/2011:
Sieht durchaus eleganter aus :-)
Martin Dauskardt schrieb am 5/24/2011:
Habe es im Snippet entsprechend angepasst.
 

Logge dich ein, um hier zu kommentieren!