其次,算法设计问题,进制转换,从高位开始计算需要得到对应的(幂值):
比如:aaaa = 16的3次方 x 10 + 16的2次方 x 10 + 16的1次方 x 10 + 16的0次方 x 10
如下根据你的代码改过,可以参考。
function HexToDec(inStr) {
var FormatStr = inStr.toLowerCase()
var strLen = FormatStr.length
var index = 0 //从最低位取值
var HexBit = 1//index对应进制值
var HTDSult = 0
while (index <strLen) {
switch (FormatStr.substr(strLen-index -1, 1)) {
case "0":
HTDSult = HTDSult + Math.pow(16, index) * 0
break
case "1":
HTDSult = HTDSult + Math.pow(16, index) * 1
break
case "2":
HTDSult = HTDSult + Math.pow(16, index) * 2
break
case "3":
HTDSult = HTDSult + Math.pow(16, index) * 3
break
case "4":
HTDSult = HTDSult + Math.pow(16, index) * 4
break
case "5":
HTDSult = HTDSult + Math.pow(16, index) * 5
break
case "6":
HTDSult = HTDSult + Math.pow(16, index) * 6
break
case "7":
HTDSult = HTDSult + Math.pow(16, index) * 7
break
case "8":
HTDSult = HTDSult + Math.pow(16, index) * 8
break
case "9":
HTDSult = HTDSult + Math.pow(16, index) * 9
break
case "a":
HTDSult = HTDSult + Math.pow(16, index) * 10
break
case "b":
HTDSult = HTDSult + Math.pow(16, index) * 11
break
case "c":
HTDSult = HTDSult + Math.pow(16, index) * 12
break
case "d":
HTDSult = HTDSult + Math.pow(16, index - 1) * 13
break
case "e":
HTDSult = HTDSult + Math.pow(16, index - 1) * 14
break
case "f":
HTDSult = HTDSult + Math.pow(16, index - 1) * 15
break
}
index++
}
return HTDSult
}