Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1895 | Besucher online: 64
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

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


Autor: Martin Dauskardt
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 2997
  
Kick it on dotnet-kicks.de  

Beschreibung:

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.

Abgelegt unter: Byte, Bit, Prüfen.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        /// <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)");
            }

        }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Pirmin schrieb am:  20.05.2011 20:16:14

Ich würde bei der Fehlerbehandlung auch auf mögliche negative Zahlen testen.
spezi schrieb am:  21.05.2011 19:38:13

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:  24.05.2011 08:53:00

Sieht durchaus eleganter aus :-)
Martin Dauskardt schrieb am:  24.05.2011 09:56:56

Habe es im Snippet entsprechend angepasst.


Diese Snippets könnten für Sie interessant sein:
[C#] IP Adresse in ByteArray
[C#] MAC in ByteArray
[C#] Kopierroutinen object <-> byte[]
[C#] String in Byte Array und zurück wandeln
[C#] Bitmap in Byte Array schreiben
[VB.NET] Create Nice File Size
[VB.NET] Umrechnung von Byte bis Yottabyte
[C#] byte-String in byte wandeln
[VB.NET] String in Byte Array und zurück wandeln
[C#] Netzwerktraffic anzeigen
[C#] Byte Größenangaben als String formatieren (KB, MB, GB, ...)
[C#] Datei Teilweise einlesen (gestückelt)
[C#] long in ein byte-Array kopieren
[C#] Byte-Array in Struktur kopieren
[C#] Setzt ein bestimmtes Bit in einem Byte
[VB.NET] Prüfung auf 64-Bit für eigene Applikation / Betriebssystem
[C#] prüfen ob String eine gültige IP ist
[C#] String auf Emailadresse prüfen
[C#] Windows Passwort überprüfen [Übersetzung]
[C#] Prüfen, ob exklusiver Zugriff auf eine Access-DB möglich ist
[ASP.net] Datei nach Bildupload prüfen
[C#] Kollision von zwei rechteckigen Objekten prüfen
[C#] Prüfen, ob eine Datei ausfürbar ist (.exe, .bat, etc.)
[C#] String auf erlaubte Zeichen prüfen
[C#] Prüfen ob aktueller Benutzer Administrator ist
[C#] Herausfinden, ob ein Programm (ProgramName) installiert ist.
[C#] Property auf Attribute prüfen Property.HasAttribute
[VB.NET] Permutation nachweisen
[VB.NET] Das Sieb des Eratosthenes
[VB.NET] Effizientere Primzahlprüfung großer Zahlen
[VB.NET] Das Sieb von Atkin
[VB.NET] Das Sieb von Atkin (2)
[VB.NET] Pandigitale Zahlen
[VB.NET] Das Sieb von Atkin (2) - aktuell

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.