sách gpt4 ai đã đi

JavaScript:十六进制到十进制转换器错误

In lại 作者:行者123 更新时间:2023-11-30 07:54:40 28 4
mua khóa gpt4 Nike

我一直在制作一个自定义函数,用于将我的 scratch project 中的十六进制转换为十进制:

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...

1 Câu trả lời

以下内置函数将为您进行转换:

dec = parseInt('0x' + hexstr,16);

只需确保要转换的数字小于最大安全 JavaScript 整数:
(2^53 - 1) = 0x1fffffffffffff = 9007199254740991。

如果您需要处理更大的数字,请查看此处的代码: https://codegolf.stackexchange.com/questions/1620/arbitrary-base-conversion
不是我写的,别叫我解释

关于JavaScript:十六进制到十进制转换器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43196775/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com