wewa
Mitglied
Hallo!
Um mit einem Mikrocontroller kommunizieren zu können, muss ich eine VB Single-Zahl in das genormte 32-Bit float Format umwandeln.
Hier auf Wikipedia ist auch die Vorgehensweise beschrieben, ich habe auch schon versucht das in VB6 umzusetzen, aber leider funktioniert das irgendwie nicht.
Das ist die Funktion welche die Umsetzung erledigen soll.
Es wäre toll wenn ihr mir ein wenig weiterhelfen könntet, Danke.
Um mit einem Mikrocontroller kommunizieren zu können, muss ich eine VB Single-Zahl in das genormte 32-Bit float Format umwandeln.
Hier auf Wikipedia ist auch die Vorgehensweise beschrieben, ich habe auch schon versucht das in VB6 umzusetzen, aber leider funktioniert das irgendwie nicht.
Das ist die Funktion welche die Umsetzung erledigen soll.
Code:
Static Function Log2(x)
Log2 = Log(x) / Log(2#)
End Function
Static Function SingleToFloat(x)
Dim e As Integer
Dim vz As Boolean
Dim float, m As Long
If x <> 0 Then
e = Log2(Abs(x)) + 127 'Hier sollten nur die Vorkommastellen verwendet werden (nicht runden!) habe aber keinen Plan wie ich das anstellen soll
m = (Abs(x) / (2 ^ e) - 1) * 2 ^ 23
float = m
float = float Or (e * &H800000)
If x < 0 Then
float = float Or &H80000000
End If
Else
float = 0
End If
SingleToFloat = float
End Function
Es wäre toll wenn ihr mir ein wenig weiterhelfen könntet, Danke.