Autor: Peter Haserodt --- Aus Excel VBA - Gruppe:
Häufige FragenBinärumwandlungen
Autor: Peter Haserodt - Erstellt: -- - Letzte Revision: --
Immer wieder mal gebraucht.
Der Code sollte selbsterklärend sein
' **************************************************************
' Modul: mdlBin Typ = Allgemeines Modul
' **************************************************************
Option Explicit
Public Sub Test_DezimalZuBinaer()
Debug.Print DezimalZuBinaer(7)
End Sub
Public Sub Test_BinaerZuDezimal()
Debug.Print BinaerZuDezimal("111")
End Sub
Public Function DezimalZuBinaer(ByVal DieZahl As Long) As String
' Peter Haserodt 2004
Select Case DieZahl
Case 0, 1
DezimalZuBinaer = DezimalZuBinaer & DieZahl
Case Else
DezimalZuBinaer = DezimalZuBinaer(Fix(DieZahl / 2)) & CStr(DieZahl Mod 2)
End Select
End Function
Public Function BinaerZuDezimal(BinaerString As String) As Long
' Peter Haserodt 2004
Dim i As Integer
For i = Len(BinaerString) To 1 Step -1
BinaerZuDezimal = BinaerZuDezimal + Val(Mid(BinaerString, i, 1)) * _
2 ^ (Len(BinaerString) - i)
Next i
End Function
Anmerkung: Größere Zahlen (Double)
Dafür muss man die Funktionen ein klein wenig ändern:
Die Deklarationen müssen von Long in Double geändert werden und der Ausdruck
& CStr(DieZahl Mod 2)
muss geändert werden in:
& CStr(DieZahl - Fix(DieZahl / 2) * 2)
Da mod nur Longzahlen verträgt.
Weitere Artikel der Gruppe: Häufige Fragen Aus Excel VBA
Nach oben