使用せずに10進数から16進数へのコンバーターを作成しようとしていますNumber.prototype.toString
(これはその機能を許可しない割り当てです)。再帰を使用してそれを機能させようとしています。それが意味をなす場合、すべてelse
がメインの内部まで機能します。else
255 を超える数値 (つまり、16 進数で 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();