我一直在做一个自定义功能转换十六进制从为十进制我scratch project:的JavaScript:十六进制到十进制转换错误
function Hex2Decimal(hex){
var deci = 0;
var num = 1;
var hexstr = String(hex);
hexstr = hexstr.toLowerCase();
var expon = 0;
for(var i = 0; i < hex.length; i++){
expon = Math.pow(16,hexstr.length - (num+1));
if(hexstr[num+1] === "a"){
deci = (10*expon)+deci;
}else if(hexstr[num-1] === "b"){
deci = (11*expon)+deci;
}else if(hexstr[num-1] === "c"){
deci = (12*expon)+deci;
}else if(hexstr[num-1] === "d"){
deci = (13*expon)+deci;
}else if(hexstr[num-1] === "e"){
deci = (14*expon)+deci;
}else if(hexstr[num-1] === "f"){
deci = (15*expon)+deci;
}else if(hexstr[num-1] != "undefined"){
deci = (Number(hexstr[num-1])*expon)+deci;
}
num = num + 1;
}
return deci;
}
但是当我把“BC324240”到它,它返回值“197338148”而不是“3157410368”。 将该值转换回十六进制时,会得到'BC32424'。出于某种原因,我需要帮助寻找,其中的'0'完全被忽略。 也注意到,用“10”返回1 ...
'我
我改变了它,但结果仍然是一样的。没什么不同。 –
是的,这是一些有趣的代码。我很难理解你想要做什么。你可以添加一些评论吗? –