数字可以与之关联的基数是否有限制?

时间:2010-10-21 11:22:27

标签: javascript numbers counting

这可能是非常复杂和扭曲的想法。学习一些JavaScript时得到它。它引起了我的注意。希望可能有其他人以前会想到它或可能启发我: - )

var n = 17;

binary_string = n.toString(2);        // Evaluates to "10001"
octal_string = "0" + n.toString(8);   // Evaluates to "021"
hex_string = "0x" + n.toString(16);   // Evaluates to "0x11"

这使我更多地探究基础。我记得我的数字工程课程并且理解,对于大于10的基数,从10开始的每个数字都将从'a','b'开始命名。

例如:

var n = 10;
var y = 11;
string = n.toString(12); // Evaluates to 'a'
string = y.toString(12); // Evaluates to 'b'

然后我明白这可能会上升'z' 因此

var n = 35;
string = n.toString(36); // Evaluates to "z"

但这似乎是结束。如果我们这样做

var n = 35;
string = n.toString(37); // Gives error Error: illegal radix 37 { message="illegal radix 37", more...}

因此,我相信我们只能计算到36的基数。因为对于基数为37的计数系统,由于我们用完了英文字符,我们不能算数36。反正我们能做到吗?也许我们可以添加其他角色。

我知道这是非常无用的事情,我们永远不会需要它。

但是有没有人想过它?

3 个答案:

答案 0 :(得分:2)

在这里查看我的问题。 What symbols are used after base 36

答案 1 :(得分:1)

是的,当然可以完成,而不是使用JavaScript的toString函数。

您只需确定要用于数字的字符。虽然有一些既定标准,但这在很大程度上是任意的。例如,请参阅Base64Ascii85等。

答案 2 :(得分:1)

当然可以做到,数字库完全是任意的(在9之后使用英文字母只是一个常见的约定)。 Number#toString专门用于处理基数2到36:

  

可选的基数应该是2到36范围内的整数值。

来自the spec,第15.7.4.2节。