【问题标题】:Javascript decimal to hexadecimalJavascript十进制到十六进制
【发布时间】:2023-07-03 09:28:01
【问题描述】:

我对编程非常陌生,正在尝试编写一个用于十进制到十六进制转换器的应用程序。当您在数字框中(以 10 为基数)输入数字时,您会看到以 16 为基数的等效值随着框中值的变化而出现。我不知道如何让我的程序运行。任何建议将不胜感激! HTML:

Base Ten:
<input type="number" id="base10" onkeydown="convertBase10to16()">
<br>Base Sixteen:
<input id='base16'>

Javascript:

var base10 = 
    document.getElementById("base10");

var base16 = 
    document.getElementById("base16");

var convertBase10to16() = {function () {
    if (id("base10").value !== '') 
    {id("base16").value = parseInt(id("base10").value,10).toString(16);}
};

https://jsfiddle.net/8yvjyy4b/3/

【问题讨论】:

  • 您的代码有几个语法错误,并且使用了一个名为id 的函数而没有定义它。您应该检查 JavaScript 控制台中的错误以尝试首先解决您的问题;见How to open the JavaScript console in different browsers?
  • 这里有太多问题需要解决。请缩小您的问题范围,从要求我们完成到解释您遇到问题的确切位置。

标签: javascript hex decimal jsfiddle


【解决方案1】:

您的代码有几个语法错误。这是它的样子

var base10 = document.getElementById("base10");

var base16 =  document.getElementById("base16");

base10.addEventListener("blur", function() {
    var num = Number(this.value);
    base16.value = num.toString(16);
});

https://jsfiddle.net/8yvjyy4b/4/

【讨论】:

  • 我不同意使用Number(n) 而不是parseInt(n, 10)。前者不会将输入限制为整数。这是 OP 实际上正确完成的少数几件事之一,尽管你们都没有任何错误检测。