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