Que es eso de especificar una base con parseInt en javascript

Iniciado por Cannabinnol, 30 Diciembre 2012, 20:56 PM

0 Miembros y 1 Visitante están viendo este tema.

Cannabinnol

Hola, soy nuevo en el foro, y tambien "nuevo" en JS, ando estudiando por internet y tambien Gracias a un Libro de la editorial ANAYA, y bueno durante todo el recorrido que he hecho en el libro me he topado con algo que no entiendo y es el parametro opcional de la funcion parseInt, me gustaría que explicasen un poco de que se trata y que es eso de conversion en base 10 base 8  base 16 etc para mí ha resultado algo complicado de entender.

PD: Tampoco he entendido eso de expresiones regulares. espero pueden ayudarme un saludo y gracias de antemano.

keny_jago

#1
Buenas cannabinol yo tampoco es que sepa mucho, ando estudiando un ciclo superiro de desarrollo de aplicaciones y pues estamos enpezando a programar en java; pero weno espero que esto te ayude:

parseInt convierte su primer argumento, la cadena "cadena", e intenta retornar un entero en una base de raíz especificada, indicada por el segundo parámetro opcional, "radix". Por ejemplo, una raíz de 10 indica convertir a número decimal, ocho a octal, dieciseis a hexadecimal y así sucesivamente. Para raíces mayores a diez, las letras del alfabeto indican números mayores a nueve. Por ejemplo, para números hexadecimales (base 16), son utilizadas desde la A hasta la F.

Si parseInt encuentra un caracter que no es un número en la raíz especificada, lo ignora y todos los caracteres sucesivos y retorna el valor entero convertido hasta el punto. Si el primer caracter no puede ser convertido a un número en una raíz especificada, retorna "NaN." La función parseInt trunca la cadena a valores enteros.

Y aqui te dejo algo sobre las bases aver si te ayuda:

  • Si la cadena empieza con "0x", la base es 16 (hexadecimal)
  • Si la cadena empieza con "0", la base es 8 (octal) [esta funcionalidad dicen que esta en desuso pero con Chrome hasta la versión 4 si funciona al igual que en Firefox 3.5, no he probado en otros navegadores]
  • Si la cadena empieza con cualquier otro valor la base es 10 (decimal)

Cannabinnol

Coño!! seré tonto!! osea ya te iva a preguntar que en que influia si era una base u otra y acabo de descubrir por mi cuenta que se multiplica el resultado por lo que veo... he provado a poner 0x2 y me ha dado 32 y eso es lo que he deducido que se multiplica jaja. ahora lo que no entiendo es lo de las letras!, porsierto me puedes explicar lo de expresiones regulares! , muchísimas gracias por lo anterior de verdad :)!