Global Const $NS_DEC = "0-1-2-3-4-5-6-7-8-9", _ $NS_HEX = "0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F", _ $NS_BIN = "0-1", _ $NS_OCT = "0-1-2-3-4-5-6-7", _ $NS_ABC = "A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z" Func _NumberConvert($sValue, $sNSystemFrom, $sNSystemTo) If $sNSystemFrom = $sNSystemTo Then Return $sValue EndIf Local $sReturn, $bSign, $iDec, $iToCap, $iExponent = -1, $fTmp If StringLeft($sValue, 1) = "-" Then $bSign = True $sValue = StringTrimLeft($sValue, 1) EndIf Local Const $S_NS_FROM = StringReplace($sNSystemFrom, "-", ""), _ $A_NS_FROM = StringSplit($sNSystemFrom, "-", 2), _ $A_NS_TO = StringSplit($sNSystemTo, "-", 2), _ $A_VALUE = StringSplit($sValue, "", 2) Local $A_NS_DEC[UBound($A_NS_FROM)] For $i = 0 To UBound($A_NS_FROM) - 1 $A_NS_DEC[$i] = $i Next For $i = 0 To UBound($A_VALUE) - 1 $iDec += $A_NS_DEC[StringInStr($S_NS_FROM, $A_VALUE[$i])-1] * UBound($A_NS_FROM) ^ (UBound($A_VALUE) - 1 - $i) Next Do $sReturn = $A_NS_TO[Mod($iDec, UBound($A_NS_TO))] & $sReturn If $iDec / UBound($A_NS_TO) <> Int($iDec / UBound($A_NS_TO)) Then $iDec = Int($iDec / UBound($A_NS_TO)) Else $iDec /= UBound($A_NS_TO) EndIf Until $iDec = 0 If $bSign = True Then $sReturn = "-" & $sReturn Return $sReturn EndFunc