Tipp 8.12 - Binär nach Dezimal

Wie kann ich eine Binärzahl in eine Dezimalzahl bzw. eine Dezimalzahl in eine Binärzahl umwandeln?

Mit dieser Funktion können Sie eine Binärzahl in eine Dezimalzahl bzw. eine Dezimalzahl in eine Binärzahl umwandeln. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Beispiel:

Option Explicit
 
Function Bin2Dec(ByVal sBinValue As String) As Long
'// -----------------------------------------------------
'// Methode:   | Binärwert in Dezimalzahl umwandeln
'// -----------------------------------------------------
'// Parameter: | sBinValue - Binärwert als String
'// -----------------------------------------------------
'// Rückgabe:  | Errechneter Dezimalwert
'// -----------------------------------------------------
'// Autor:     | Stefan Kulpa
'//            | EDV Innovation & Consulting - Dormagen
'// -----------------------------------------------------
    Dim lLoop   As Long
    Dim lLength As Long
 
    lLength = Len(sBinValue)
    For lLoop = lLength To 1 Step -1
        Bin2Dec = _
        Bin2Dec + IIf(Mid$(sBinValue, lLoop, 1) _
                = "1", 2 ^ (lLength - lLoop), 0)
    Next lLoop
 
End Function
 
Function Dec2Bin(ByVal lDecValue As Long) As String
'// -----------------------------------------------------
'// Methode:   | Binärwert einer Dezimalzahl ermitteln
'// -----------------------------------------------------
'// Parameter: | lDecValue - Dezimalzahl
'// -----------------------------------------------------
'// Rückgabe:  | Ermittelter Binärwert
'// -----------------------------------------------------
'// Autor:     | Stefan Kulpa
'//            | EDV Innovation & Consulting - Dormagen
'// -----------------------------------------------------
    Dim lRemainder As Long
    Do
        lRemainder = lDecValue Mod 2
        Dec2Bin = lRemainder & Dec2Bin
        lDecValue = lDecValue \ 2
 
    Loop Until lDecValue = 0
 
End Function