这可能是非常复杂和扭曲的想法。学习一些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。反正我们能做到吗?也许我们可以添加其他角色。
我知道这是非常无用的事情,我们永远不会需要它。
但是有没有人想过它?
答案 0 :(得分:2)
在这里查看我的问题。 What symbols are used after base 36
答案 1 :(得分:1)
答案 2 :(得分:1)
你当然可以做到,数字库完全是任意的(在9
之后使用英文字母只是一个常见的约定)。 Number#toString
专门用于处理基数2到36:
可选的基数应该是2到36范围内的整数值。
来自the spec,第15.7.4.2节。