Que signifie réellement radix? Pourquoi en avons-nous besoin?
parseInt(10, radixValue);
javascript
John Cooper
la source
la source
Réponses:
Vous ne voudrez peut-être pas toujours analyser l'entier en un nombre de base 10, donc fournir la base vous permet de spécifier d'autres systèmes de nombres.
La base est le nombre de valeurs pour un seul chiffre. Hexidecimal serait 16. Octal serait 8, Binary serait 2, et ainsi de suite ...
Dans la
parseInt()
fonction, vous pouvez faire plusieurs choses pour indiquer la base sans la fournir. Celles-ci peuvent également jouer contre vous si l'utilisateur entre une chaîne qui correspond à l'une des règles mais ne le veut pas expressément. Par exemple:// Numbers with a leading 0 used a radix of 8 (octal) before ECMAScript 5. // These days, browsers will treat '0101' as decimal. var result = parseInt('0101'); // Numbers that start with 0x use a radix of 16 (hexidecimal) var result = parseInt('0x0101'); // Numbers starting with anything else assumes a radix of 10 var result = parseInt('101'); // Or you can specify the radix, in this case 2 (binary) var result = parseInt('0101', 2);
la source
parseInt('0101')
revient maintenant101
. Cependant, différents navigateurs peuvent avoir un comportement différent. Incluez toujours la base pour des résultats fiables.parseInt(x, 0)
pour une raison dont je ne me souviens pas pour le moment .. est-ce égal àparseInt(x, 10)
je me demande maintenant ...Parce que si vous avez un numéro de chaîne comme
0700
et que vous voulez que la sortie soit un entier,700
vous devez informerparseInt()
qu'il s'agit d'un nombre décimal plutôt que octal.console.log(parseInt("0700")); // 448 // I really wanted decimal (base 10) console.log(parseInt("0700", 10)); // 700 // What is this? Binary, Decimal, Octal? console.log(parseInt("0110")); // 72 // as binary console.log(parseInt("0110", 2)); // 6
la source
0o
au lieu de0
Radix est la base d'un système de numération. Il existe un nombre infini de systèmes numériques, mais ceux avec lesquels la plupart des gens sont familiers sont la base 10 (décimale) et la base 2 (binaire).
Les valeurs numériques peuvent être interprétées différemment dans différentes bases. Par exemple, le nombre 10 en binaire peut être représenté par 2 en décimal.
Dans le cas de
parseInt()
, la base vous permet de spécifier la base à utiliser. Par défaut, une base de 10 est utilisée.Cependant, la base doit toujours être spécifiée, même lorsque vous utilisez la base 10. Prenons le cas de
parseInt("010")
// Renvoie 8À première vue, vous pouvez vous attendre à ce que l'instruction renvoie 10. L'utilisation explicite de la racine aidera à éviter toute confusion:
parseInt("010", 10)
// Renvoie: 10la source
La base est le numéro de base du système numérique: http://en.wikipedia.org/wiki/Radix
Normalement, vous n'avez besoin de spécifier la base que si vous voulez qu'elle soit différente de 10. Plus précisément (à partir de http://www.w3schools.com/jsref/jsref_parseInt.asp ):
la source
Il suffit d'ajouter quelques informations supplémentaires qui répondent clairement à la question:
Si radix est indéfini ou 0 (ou absent), JavaScript suppose ce qui suit:
Source: MDN parseInt ()
la source
C'est juste mon avis, mais l'idée que "nous devons utiliser radix" devient rapidement obsolète. Le problème était réel il y a quelque temps, car les gens en dehors du monde informatique n'utilisent généralement pas de notations numériques autres que décimales et fournissent souvent des nombres décimaux remplis de zéro comme "010". Mais comme les nombres octaux ECMAScript 6 dans JS sont préfixés par «0o» et pas seulement par «0» comme c'était le cas dans ECMAScript 5 et 3. Donc, si vous ne ciblez pas la famille IE (ce n'est pas une situation rare maintenant), vous pouvez sauter radix sans encombre.
la source
Source W3Schools
la source
Qu'est-ce que radix dans paseInt ()?
La
parseInt()
fonction analyse une chaîne et renvoie un entier. Il prend un deuxième argument pour la base , qui spécifie la base du nombre dans la chaîne . La base peut être un entier compris entre2
et36
.L'appel de fonction ressemble à (Syntaxe):
parseInt(string, radix);
Quelques exemples pour clarifier le concept de radix
Exemple 1:
var a = parseInt("11", 2);
La variable radix indique que "11" est dans le système binaire, ou base 2 . Par conséquent, cet exemple convertit la chaîne «11» en un entier 3.
Exemple 2:
var a = parseInt("10011", 16);
Ici, la base indique
parseInt()
que10011
c'est un nombre hexadécimal et donc en entier, il est converti en65553
Fondamentalement, pour faire court, l' argument radix indique
parseInt()
que la chaîne passée en tant que 1er paramètre appartient à un système particulier (binaire, hexadécimal, etc.) et doit être convertie en un entier en tant que produit final.la source