Mit Binärzahlen arbeiten

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Binärzahlen – da arbeiten doch nur Computer mit, oder auch mit Hexadezimalzahlen! Das ist doch uninteressant für mich! Mitnichten: Einige Grundkenntnisse im Bereich des Umgangs mit Binärzahlen haben noch keinem geschadet. Schon gar nicht, wenn man mit Access arbeitet und mit VBA programmiert. Dort ergibt sich doch das eine oder andere Mal Gelegenheit, mit einfachen Funktionen größere Probleme zu lösen – oder die Rechenoperationen wie die logische Konjunktion oder Disjunktion einzusetzen. Dieser Artikel liefert die wichtigsten Grundlagen zu diesem Thema.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1703_Binaerzahlen.accdb.

Dezimalzahlen und Binärzahlen

Dezimalzahlen stammen aus dem Stellenwertsystem, mit dem wir täglich umgehen – dem Dezimalsystem. Die erste Stelle entspricht dem Einer, die zweite dem Zehner, die dritte dem Hunderter und so weiter. Dementsprechend gibt es für jede Stelle zehn verschiedene Ziffern von 0 bis 9. Anders sieht es beim Dualsystem oder Binärsystem aus. Hier gibt es nur zwei verschiedene Zahlen, nämlich 0 und 1. Die erste Stelle steht wie beim Dezimalsystem für den Einer, aber die zweite erfasst direkt die Zweier, die dritte die Vierer und so weiter. Die Zahl 5 im Dezimalsystem entspricht dann etwa der Zahl 101 im Binärsystem (ein Vierer, kein Zweier, ein Einer).

Konviertieren

Nun kommt es vor, dass Sie Zahlen im Binärsystem erhalten und diese gegebenenfalls in das Dezimalsytem umwandeln wollen oder umgekehrt. Dafür benötigen Sie kleine Funktionen, die Sie sich nicht selbst ausdenken müssen – wir stellen Sie ihnen in den folgenden Abschnitten vor.

Umrechnen von Dezimal zu Binär

Die Funktion zum Umrechnen von dezimalen Zahlen in binäre Zahlen heißt Dec2Bin. Sie erwartet einen Long-Wert und liefert einen String zurück:

Public Function Dec2Bin(lngDecimal As Long) As String
    Dim strBinaer As String
    Do While lngDecimal > 0
        If lngDecimal Mod 2 = 1 Then
            strBinaer = "1" & strBinaer
            lngDecimal = lngDecimal - 1
            lngDecimal = lngDecimal / 2
        Else
            strBinaer = "0" & strBinaer
            lngDecimal = lngDecimal / 2
        End If
    Loop
    Dec2Bin = strBinaer
End Function

Sie können diese Funktion beispielsweise mit den folgenden Aufrufen im Direktbereich des VBA-Editors ausprobieren:

 dec2bin(4096)
1000000000000
 dec2bin(4095)
111111111111

Die Funktion prüft zunächst, ob die übergebene Zahl beim Teilen durch den Wert 2 einen Rest von 1 liefert. Ist dies der Fall, besetzt sie schon einmal die ganz rechte Stelle der Binärzahl mit dem Wert 1. Von der Zahl subtrahiert die Funktion dann den Wert 1, da wir die 1 ja schon in strBinaer abgebildet haben.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar