Feedback

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

Sprache: C#

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)");
            }

        }
        /// <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)");
            }

        }

4 Kommentare

  1. 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)“
    );
    }
    }