Konversi Hexadesimal ke Desimal dengan Visual Foxpro
&& FUNCTION Hex2Dec untuk mengubah Hexadesimal menjadi desimal
&& Parameter :
&& _HexNum
&& Contoh :
&& Hex2Dec("FF") ==> 255
&& Hex2Dec("F1") ==> 241
&& Hex2Dec("10") ==> 16
FUNCTION Hex2Dec
PARAMETERS _HexNum
IF VARTYPE(_HexNum)="N"
_HexNum=ALLTRIM((STR(_HexNum)))
ENDIF
IF VARTYPE(_HexNum)<>"C"
_HexNum=""
ENDIF
_Balik=0
FOR kei=LEN(_HexNum) TO 1 STEP -1
_Balik=_Balik+(Hex2DecTbl(SUBSTR(_HexNum,kei,1)))*16^(LEN(_HexNum)-kei)
NEXT
RETURN _Balik
FUNCTION Hex2DecTbl
PARAMETERS __HexNum
IF VARTYPE(__HexNum)="N"
__HexNum=ALLTRIM(STR(__HexNum))
ENDIF
IF VARTYPE(__HexNum)<>"C"
__HexNum=""
ENDIF
__HexNum=UPPER(LEFT(__HexNum,1))
DO CASE
CASE __HexNum="0"
__Balik=0
CASE __HexNum="1"
__Balik=1
CASE __HexNum="2"
__Balik=2
CASE __HexNum="3"
__Balik=3
CASE __HexNum="4"
__Balik=4
CASE __HexNum="5"
__Balik=5
CASE __HexNum="6"
__Balik=6
CASE __HexNum="7"
__Balik=7
CASE __HexNum="8"
__Balik=8
CASE __HexNum="9"
__Balik=9
CASE __HexNum="A"
__Balik=10
CASE __HexNum="B"
__Balik=11
CASE __HexNum="C"
__Balik=12
CASE __HexNum="D"
__Balik=13
CASE __HexNum="E"
__Balik=14
CASE __HexNum="F"
__Balik=15
ENDCASE
RETURN __Balik
0 komentar:
Posting Komentar