0 000 0 0 0
1 001 1 0 0
2 010 1 1 0
3 011 2 1 0
4 100 2 0 1
5 101 3 0 1
6 110 3 2 1
7 111 4 2 1
Ich habe bis jetzt folgendes Programm:
Option Explicit
Sub Zähler()
Debug.Print " Sekundenzähler mit Binärzahlen und Flankenauswertung"
Debug.Print " ----------------------------------------------------"
Debug.Print " T Dual 1.Flanke 2.Flanke 3.Flanke"
Dim Zahl As Double
Dim i As Byte
For i = 0 To 7 Step 1
Application.Wait Now + TimeSerial(0, 0, 1)
Zahl = i
Debug.Print i, DezimalNachBinär(Zahl)
Next i
End Sub
Function DezimalNachBinär(Zahl As Double) As String
Dim Losgehts As Boolean
Dim Ausgabe As String
Dim Exp As Long
If Zahl <= (2 ^ 31) - 1 And Zahl = Int(Zahl) Then
For Exp = 30 To 0 Step -1
If Zahl >= (2 ^ Exp) Then
Ausgabe = Ausgabe & "1"
Zahl = Zahl - (2 ^ Exp)
Losgehts = True
Else
If Losgehts = True Then
Ausgabe = Ausgabe & "0"
End If
End If
Next Exp
End If
If Ausgabe = "" Then Ausgabe = "0"
DezimalNachBinär = Format(Ausgabe, "000")
End Function
Danke im voraus