Ich hab hier 3 Proceduren geschrieben, die HEX und BIN-Werte konvertierten können:
Code: Alles auswählen
Procedure.l Hex2Dec(Wert.s)
; Verbesserung von Karl...
Protected temp.l, i.w
For i = 1 To Len(Wert)
Select UCase(Mid(Wert, i, 1))
Case "A"
temp + 10 * Pow(16,(Len(Wert)-i))
Case "B"
temp + 11 * Pow(16,(Len(Wert)-i))
Case "C"
temp + 12 * Pow(16,(Len(Wert)-i))
Case "D"
temp + 13 * Pow(16,(Len(Wert)-i))
Case "E"
temp + 14 * Pow(16,(Len(Wert)-i))
Case "F"
temp + 15 * Pow(16,(Len(Wert)-i))
Default
temp + Val(Mid(Wert,i,1)) * Pow(16,(Len(Wert)-i))
EndSelect
Next i
ProcedureReturn temp
EndProcedure
; "Dez2Hex" gibt's ja schon...
Procedure Bin2Dec(bin.s) ; bin.s muss immer die Länge von 8 Zeichen (1 Byte) haben, sonst werden Nullen drangehängt!
long = 0
For a = 1 To 8
long + Val(Mid(bin,9-a,1))*Pow(2,a-1)
Next
ProcedureReturn long
EndProcedure
Procedure.s Dec2Bin(dez.l)
Result.s = ""
For a = 8 To 1 Step -1
If Pow(2,a-1) <= dez
dez - Pow(2,a-1)
dez = dez/-1
Result + "1"
Else
Result + "0"
EndIf
Next
ProcedureReturn Result
EndProcedure