js 怎样将十六进制转成十进制

JavaScript022

js 怎样将十六进制转成十进制,第1张

parseInt(数, 进制) 其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制。自己调试以下。不行的话你可以吧二进制转为十进制使用。并不影响你的而逻辑同意yanzilisan183 的观点。

首先,switch语句用错了,每一个case都要以break结束(除非特殊需要),否则,满足case:"a"后,后面的case也会继续执行,直到遇到break。

其次,算法设计问题,进制转换,从高位开始计算需要得到对应的(幂值):

比如: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

}