我试图在不使用的情况下将十进制转换为十六进制转换器Number.prototype.toString
(这是一个不允许该功能的分配)。我正在尝试使用递归来尝试工作。如果这有任何意义,一切都可以正常工作,直到else
进入 main 内部。else
当我对 255 以上的任何数字(即十六进制中超过 2 位的任何数字)运行它时,它会给我这个错误。有谁知道为什么会这样?
var number = parseInt(prompt("Give me a number and I will turn it into hexadecimal!"));
var digit = 1;
var hexConverter = function () {
if (digit === 1) {
if (Math.floor(number / 16) === 0) {
console.log(hexDigits[number]);
} else {
digit = 16;
console.log(hexConverter(), hexDigits[number % 16]);
}
} else {
if (Math.floor(number / (digit * 16)) === 0) {
return (hexDigits[Math.floor(number / digit)]);
} else {
return (hexConverter(), hexDigits[number % (digit * 16)]);
}
digit = digit * 16;
}
};
hexConverter();