【问题标题】:Is there a limit to the base to which numbers can be associated to?数字可以关联到的基数是否有限制?
【发布时间】:2010-10-21 11:22:27
【问题描述】:

这可能是一个非常复杂和扭曲的想法。在学习一些 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,因为我们用尽了英文字符。无论如何我们可以做到吗?也许我们可以添加其他字符。

我知道这是非常没用的东西,而且我们在生活中永远不需要它。

但是有没有人考虑过?

【问题讨论】:

    标签: javascript numbers counting


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      是的,当然可以,只是不能使用 JavaScript 的 toString 函数。

      您只需要决定为您的数字使用哪些字符。这在很大程度上是任意的,尽管有一些既定的标准。例如,请参阅Base64Ascii85 等。

      【讨论】:

      • 抱歉,您的回答完全正确。但由于 Preet Sangha 的 qtn 中正在进行更多讨论。我接受它作为公认的答案。但是 +1
      【解决方案3】:

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

      可选的 radix 应该是 2 到 36 之间的整数值。

      来自the spec,第 15.7.4.2 节。

      【讨论】:

        猜你喜欢
        • 2020-12-19
        • 2021-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-27
        • 1970-01-01
        相关资源
        最近更新 更多