2

これは非常に複雑でねじれた考えかもしれません。いくつかの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を数えることができません。とにかくそれができることはありますか?たぶん、他のキャラクターを追加することができます。

私はそれが非常に役に立たないことを知っています、そして人生で決してそれを必要としないでしょう。

しかし、誰かがすでにそれについて考えましたか?

4

3 に答える 3

2

ここで私の質問を参照してください。三十六進法の後に使用される記号

于 2010-10-21T11:25:53.287 に答える
1

toStringはい、もちろん、JavaScriptの関数ではなく、実行できます。

数字に使用する文字を決定する必要があります。いくつかの確立された基準がありますが、これはおおむね恣意的です。たとえば、Base64Ascii85などを参照してください。

于 2010-10-21T11:25:44.063 に答える
1

あなたは確かにそれを行うことができます、基数は完全に任意です(後に英語のアルファベットを使用すること9は単なる一般的な慣習です)。Number#toStringベース2から36を処理するように特別に設計されています。

オプションの基数は、2から36までの範囲の整数値である必要があります。

仕様から、セクション15.7.4.2。

于 2010-10-21T11:28:11.843 に答える