如何在javascript中将base 10转换为base 8?我尝试了parseInt(text, 8)
,但问题是,当我写8或9时,它说NaN
我知道8和9不存在于基础8中。但它应该说10和11而不是NaN
编辑:这是整个功能
function toBaseEight(){
var text = document.getElementById('base10').value;
var base8 = parseInt(text, 8);
document.getElementById('base8').innerHTML = base8;
}
答案 0 :(得分:9)
您可以将基数传递给toString():
> (9).toString(8)
11
在您的具体情况下,您可以写:
document.getElementById("base8").innerHTML
= parseInt(document.getElementById("base10").value, 10).toString(8);
答案 1 :(得分:2)
尝试以下代码
text.toString(8);
或尝试
parseInt(text).toString(8)
答案 2 :(得分:0)
试试(number).toString(8)
。或者您可以使用parseInt ("number", 8)
。你一定忘记了引号。
答案 3 :(得分:0)
您必须记住,括号左侧的数字是右侧基数的底部,因此它返回十进制等值。
parseInt(10, 8)
要求1×8 ^ 1 + 0×8 ^ 0 = 8
parseInt(12, 8)
问1×8 ^ 1 + 2×8 ^ 0 = 8 + 2 = 10
parseInt(7, 8)
要求7×8 ^ 0 = 7
因此很难有9个出现11个,因为八进制中的13个是11 ...
您可以按照上面提到的答案将十进制数转换为八进制而不是反之亦然,这就是parseInt正在做的事情:(x).toString(y)