-1

ここで何が起こっているのかわかりません:

var x = 14;
alert(x.toString(36)); //alerts 'e'

alert(x.toString(16)); //also alerts 'e'

x = 20;
alert(x.toString(16)); //alerts '14'
alert(x.toString(36)); //alerts 'k'

最初のパラメータは、変換される数値の記数法を決定すると思いますが、よくわかりません。誰かが正確に何が起こっているのかを詳細に説明できますか?

4

3 に答える 3

3

numberパラメータを渡してベースを変更しています。2番目の例は説明するのが最も簡単です。。。base16の14は「e」です。base16の「数字」は0、1、2、3、4、5、6、7、8、9、a(10)、b(11)、c(12)、d(13)、e(14)です。 、およびf(15)。

15以上の任意の記数法の場合、実際には14は'e'になります。

20の場合、base16は14になります。これは、1つが16で、さらに4つ(16 + 4 = 20)あるためです。

レベルセットするには、10進数(base10 .. ..私たちが最も慣れているシステム)で、技術的には14は110プラス4です。

さまざまな記数法に慣れていない場合は、少し慣れるのに時間がかかることがあります。:)

于 2013-03-01T16:12:08.183 に答える
2

パラメータは基数です。

number.toString( [radix] )

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toStringを参照してください

Numberオブジェクトは、ObjectオブジェクトのtoStringメソッドをオーバーライドします。Object.toStringを継承しません。Numberオブジェクトの場合、toStringメソッドは、指定された基数のオブジェクトの文字列表現を返します。

toStringメソッドは最初の引数を解析し、指定された基数(基数)で文字列表現を返そうとします。10を超える基数の場合、アルファベットの文字は9より大きい数字を示します。たとえば、16進数(16進数)の場合、aからfが使用されます。

toStringに2から36の間でない基数が与えられた場合、例外がスローされます。

基数が指定されていない場合、優先される基数は10と見なされます。

于 2013-03-01T16:07:19.900 に答える
0

オプションの引数は基数です。

于 2013-03-01T16:11:02.977 に答える