¿Qué significa radix realmente? ¿Por qué lo necesitamos?
parseInt(10, radixValue);
javascript
John Cooper
fuente
fuente
Respuestas:
Es posible que no siempre desee analizar el número entero en un número de base 10, por lo que proporcionar la base le permite especificar otros sistemas numéricos.
La base es el número de valores de un solo dígito. Hexadecimal sería 16. Octal sería 8, Binario sería 2, y así sucesivamente ...
En la
parseInt()
función, hay varias cosas que puede hacer para insinuar la base sin proporcionarla. Estos también pueden funcionar en su contra si el usuario ingresa una cadena que coincide con una de las reglas pero que no tiene la intención expresa de hacerlo. Por ejemplo:// 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);
fuente
parseInt('0101')
ahora vuelve101
. Sin embargo, los diferentes navegadores pueden tener un comportamiento diferente. Incluya siempre la base para obtener resultados fiables.parseInt(x, 0)
por alguna razón que no recuerdo en este momento ... ¿es esto igual a loparseInt(x, 10)
que me pregunto ahora ...?Porque si tiene un número de cadena como
0700
y desea que la salida sea un número entero700
, debe informarparseInt()
que es un número decimal en lugar de 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
fuente
0o
lugar de0
Radix es la base de un sistema de numeración. Hay un número infinito de sistemas numéricos, pero los que la mayoría de las personas conocen son la base 10 (decimal) y la base 2 (binario).
Los valores numéricos se pueden interpretar de manera diferente en diferentes bases. Por ejemplo, el número 10 en binario se puede representar como 2 en decimal.
En el caso de
parseInt()
, la base le permite especificar la base que se utilizará. Por defecto, se usa una base de 10.Sin embargo, siempre se debe especificar la base, incluso cuando se usa base 10. Considere el caso de
parseInt("010")
// Devuelve 8A primera vista, puede esperar que la declaración devuelva 10. El uso explícito de la base ayudará a evitar confusiones:
parseInt("010", 10)
// Devuelve: 10fuente
La raíz es el número base del sistema numérico: http://en.wikipedia.org/wiki/Radix
Normalmente, solo necesita especificar la base si desea que sea diferente de 10. Más específicamente (de http://www.w3schools.com/jsref/jsref_parseInt.asp ):
fuente
Simplemente agregando información adicional que responde claramente a la pregunta:
Si radix no está definido o es 0 (o está ausente), JavaScript asume lo siguiente:
Fuente: MDN parseInt ()
fuente
Es solo mi opinión, pero la idea de que "necesitamos usar radix" rápidamente se vuelve obsoleta. El problema era real hace algún tiempo porque las personas ajenas al mundo de las tecnologías de la información no suelen utilizar notaciones numéricas que no sean decimales y, con bastante frecuencia, proporcionan números decimales rellenados con ceros como "010". Pero dado que los números octales de ECMAScript 6 en JS tienen el prefijo "0o" y no solo "0" como estaba en ECMAScript 5 y 3. Entonces, si no se dirige a la familia IE (esa no es una situación rara ahora), puede omitir radix sin peligro.
fuente
Fuente W3Schools
fuente
¿Qué es radix en paseInt ()?
La
parseInt()
función analiza una cadena y devuelve un número entero. Se necesita un segundo argumento para la base , que especifica la base del número en la cadena . La base puede ser un número entero entre2
y36
.La llamada a la función se parece a (Sintaxis):
parseInt(string, radix);
Algunos ejemplos para aclarar el concepto de radix
Ejemplo 1:
var a = parseInt("11", 2);
La variable de base dice que "11" está en el sistema binario, o base 2 . Por lo tanto, este ejemplo convierte la cadena "11" en un número entero 3.
Ejemplo 2:
var a = parseInt("10011", 16);
Aquí, la raíz dice
parseInt()
que10011
es un número hexadecimal y, por lo tanto, en entero, se convierte en65553
Básicamente, en pocas palabras, el argumento radix dice
parseInt()
que la cadena pasada como primer parámetro es de un sistema en particular (binario, hexadecimal, etc.) y debe convertirse en un número entero como producto final.fuente