Siehe auch: | Hexadezimalumwandlungen | 

Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Häufige Fragen

Binärumwandlungen

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --
Immer wieder mal gebraucht.
Der Code sollte selbsterklärend sein sm3 (1K)


' **************************************************************
'  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