Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 1/2008.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erfahren Sie, wie Sie mit logischer Disjunktion und Konjunktion die Konstanten von Funktionsparametern in den Griff bekommen und was dies mit dem Dualsystem zu tun hat.

Techniken

VBA

Voraussetzungen

Access 97 und höher

Beispieldateien

Binaerzahlen.zip

Shortlink

556

Rund um Binärzahlen

André Minhorst, Duisburg

Binärzahlen - was soll ich denn damit? Ich will Access-Anwendungen erstellen, dazu brauche ich doch keine Binärzahlen! Oder vielleicht doch? Oh ja, es gibt sie sehr wohl, die Anwendungszwecke für Binärzahlen, und wenn Sie dort mit allen Wassern gewaschen sind, können Sie sich meist eine Menge Arbeit sparen. Lesen Sie doch einfach selbst, warum Binärzahlen für den Access-Entwickler interessant sind und was Sie dazu wissen sollten ...

Einem Programmierer sind Begriffe wie Dualsystem (nicht zu verwechseln mit „Duales System“ ...) oder Binärzahlen natürlich nicht unbekannt. Beim Dualsystem handelt es sich wie beim Dezimalsystem oder Hexadezimalsystem und Stellenwertsysteme, mit denen man mit einer endlichen Menge verschiedener Zahlen beziehungsweise Zeichen unendlich große Zahlen darstellen kann. Hier zu Lande ist das Dezimalsystem gebräuchlich, zumindest bei Menschen. Computer machen es sich ein wenig einfacher und verwenden nur zwei statt zehn verschiedener Zeichen zur Darstellung von Zahlen - dafür können Sie damit aber viel schneller rechnen.

Kurz zusammengefasst hier das Wichtigste zum Dualsystem: Wie beim Dezimalsystem bestehen Zahlen auch im Dualsystem aus einem oder mehreren Zeichen, deren Stellenwert von rechts nach links steigt - beim Dualsystem entspricht der Wert einer jeden Ziffer allerdings nicht der Zehnerpotenz, sondern der Zweierpotenz der jeweiligen Stelle. Während die Zahl 101 im Dezimalsystem einem Einer (1x100), keinem Zehner (0x101) und einem Hunderter (1x102) entspricht, sieht die Zahl 101 im Dualsystem zwar genauso aus, hat aber - umgerechnet in das Dezimalsystem - einen ganz anderen Wert, nämlich 1x22 + 0x21 + 1x20 = 5.

Wer sich mal umschaut, wird feststellen, dass es in der Computerwelt von Zweierpotenzen (also 20, 21, 22, 23, 24, 25 ...) nur so wimmelt - die lauten im Dezimalsystem nämlich so: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1.024, 2.048, 4.096, 8.192, 16.384, 32.768, 65.536 ... Und ein Kilobyte sind auch gar nicht 1.000 Byte, sondern 1.024 Byte, und ein Gigabyte nicht 1.000.000 Byte, sondern 1.048.576 Byte.

Ja und nein

Ein einfacher Anwendungsfall für Binärzahlen ist das Übertragen von Informationen in der einfachstmöglichen Form. Stellen Sie sich einmal vor, Sie wollten das Ergebnis einer Umfrage, die nur Fragen mit den Antworten Ja und Nein enthält, von einem Ort, sagen wir einem Webserver, zu einem anderen Ort - Ihrem eigenen Rechner - transportieren und dann auswerten.

Sie könnten dann festlegen, dass die Antwort auf die erste Frage in der ersten Stelle einer Dualzahl Platz findet, die zweite in der zweiten und so weiter. Sie können das Ergebnis - sagen wir 1010101 - in eine Binärzahl wie 85 umwandeln und anschließend die Ergebnisse der Umfrage daraus extrahieren. Das Umwandeln von binär nach dezimal geht recht einfach mit der kleinen Routine aus Listing 1.

Listing 1: Die Funktion BinaerToDecimal rechnet binäre Zahlen in dezimale Zahlen um.

Public Function BinaerToDecimal(varBinaer As Variant) As Long

    Dim lngDecimal As Long

    Dim intPos As Integer

    Dim bytVal As Byte

    Dim i As Integer

    For i = Len(varBinaer) To 1 Step -1

        bytVal = Mid(varBinaer, i, 1)

        lngDecimal = lngDecimal + bytVal * 2 ^ intPos

        intPos = intPos + 1

    Next i

    BinaerToDecimal = lngDecimal

End Function

Die Herleitung einer solchen Funktion ist einfach - Sie brauchen ja nur die Stellen der Zahl von hinten nach vorne zu durchlaufen und mit der der Stelle entsprechenden Zweierpotenz zu multiplizieren.

Etwas komplizierter ist die Umwandlung einer Dezimalzahl in eine Binärzahl - zumindest, wenn man die richtige Methode nicht kennt. Und deren Name lautet beispielsweise Modulo-Methode.

Möglicherweise klingelt es bei Ihnen ... Modulo? Genau: VBA stellt die Mod-Funktion bereit, die den Rest einer ganzzahligen Division zweier Zahlen zurückliefert. Und die Modulo-Methode zur Ermittlung von Dualzahlen aus Dezimalzahlen sieht ganz einfach so aus: Sie teilen die Dezimalzahl durch 2 und erhalten entweder1oder 0 als Rest - und das ist auch schon die erste (die rechte) Stelle der gesuchten Dualzahl.

Das Ergebnis bearbeiten Sie auf die gleiche Weise, bis die Differenz aus der ursprünglichen Zahl und der Summe aus dem Modulo und dem Quotient aus der ursprünglichen Zahl und 2 den Wert 0 ergibt.

In VBA gesprochen sieht das so wie in Listing 2 aus.

Listing 2: Die Funktion DecimalToBinaer rechnet dezimale Zahlen in binäre Zahlen um.

Public Function DecimalToBinaer(lngDecimal As Long) As String

    Dim strBinaer As String

    Do While lngDecimal > 0

        If lngDecimal Mod 2 = 1 Then

            strBinaer = strBinaer & "1"

        Else

            strBinaer = strBinaer & "0"

        End If

        lngDecimal = lngDecimal - lngDecimal / 2 - lngDecimal Mod 2

    Loop

    DecimalToBinaer = StrReverse(strBinaer)

End Function

Und nun raten Sie, wie Sie die beiden Routinen am einfachsten testen können ... Genau! Sie lassen einfach das Ergebnis der einen Funktion für einen Wert durch die andere Funktion laufen und erhalten den Ausgangswert. Falls das stimmt, funktionieren die Routinen entweder - oder sie sind beide falsch programmiert ...

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Effizientes Codieren

VBA-Code mit Doxygen dokumentieren

Grundlagen der Quellcodeverwaltung

Zugriff auf Formulare

© 2003-2015 André Minhorst Alle Rechte vorbehalten.