[ALL] digit2string in different bases
Posted: Mon Sep 09, 2002 5:16 pm
Code updated for 5.20+
Restored from previous forum. Originally posted by pantera.
Wanna do some debug outputs on lets say the console?
Example:
PrintN(d2s(32489908,10)) -> "32489908"
PrintN(d2s(32489908,16)) -> "1EFC1B4"
PrintN(d2s(300,2)) -> "100101100"
Restored from previous forum. Originally posted by pantera.
Wanna do some debug outputs on lets say the console?
Example:
PrintN(d2s(32489908,10)) -> "32489908"
PrintN(d2s(32489908,16)) -> "1EFC1B4"
PrintN(d2s(300,2)) -> "100101100"
Code: Select all
;Digits to string converter
;--------------------------
;positive numbers only,
;Only base10 use negative numbers
;Why? Because -1 may be FF, FFFF or FFFFFFFF in Hex depending on datasize Byte/Word/Long
Procedure.s d2s(input.l,base.b)
lastdigit.l
returnstring.s
input=Abs(input)
If input=0:returnstring="0":EndIf
While input>0
lastdigit=input-(input/base*base)
If lastdigit<10
returnstring=Chr(lastdigit+48)+returnstring
Else
returnstring=Chr(lastdigit+55)+returnstring
EndIf
input=input/base
Wend
ProcedureReturn returnstring
EndProcedure
OpenConsole()
PrintN(d2s(32489908,10)) ;-> "32489908"
PrintN(d2s(32489908,16)) ;-> "1EFC1B4"
PrintN(d2s(300,2)) ;-> "100101100"
Input()
CloseConsole()