Foros del Web » Programando para Internet » Javascript »

Todo sobre conversiones numéricas

Estas en el tema de Todo sobre conversiones numéricas en el foro de Javascript en Foros del Web. Hola amigos: Hoy preparé una página sobre conversiones numéricas... Algunas veces contesté algo al respecto, y veo que en las FAQs hay poca información (pueden ...
  #1 (permalink)  
Antiguo 05/04/2003, 03:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Todo sobre conversiones numéricas

Hola amigos:

Hoy preparé una página sobre conversiones numéricas...
Algunas veces contesté algo al respecto, y veo que en las FAQs hay poca información (pueden corregirme si no es así)

La página es pequeña así que voy a poner el código:

Código PHP:
<html>
<
head>
<
script>
var 
valoresHexa "0123456789ABCDEF";
function 
aHexa(n)    {
    if (
isNaN(n))    return false;
    if (
16)    return valoresHexa.charAt(n);
    else        return 
aHexa(16) + valoresHexa.charAt(16);
}

function 
aDecimal(hex)    {
    
len hex.length;
    if (
len == 0)    return false;
    var 
0;
    var 
d;
    for (var 
0len++)    {
        
valoresHexa.indexOf(hex.charAt(i));
        if (
== -1)    return false;
        
16 valoresHexa.indexOf(hex.charAt(i));
    }
    return 
n;
}

function 
aBinario(n)    {
    if (
2)    return n;
    else        return 
aBinario(parseInt(2)) * 10 + (2);
}

function 
CambioBase(_n_b)    {
    var 
parseInt(_n);
    var 
parseInt(_b);
    if (
isNaN(n) || isNaN(b)) return false;
    if (
b)    return n;
    else    return (
CambioBase(parseInt(b), b)) * 10 + (b);
}

function 
Cualquiera(n) {
    do    {
        
base prompt("Introduzca la Base");
    }    while (
isNaN(base))
    if (
base || base == 0)    return "base no implementada";
    else return 
CambioBase(nbase);
}
</script>
<head>
<body>
<form name="convertir">
<label>Introduzca el valor a convertir:</label>
<input type=text name=entrada>
<label>Resultado:</label>
<input type=text name=salida><br>
<input type=button name=actuar value="Decimal a Hexa"
    onclick="salida.value = aHexa(entrada.value)">
<input type=button name=actuar value="Hexa a Decimal"
    onclick="salida.value = aDecimal(entrada.value.toUpperCase())">
<input type=button name=actuar value="Decimal a Binario"
    onclick="salida.value = aBinario(entrada.value)">
<input type=button name=actuar value="Decimal a Base 3"
    onclick="salida.value = CambioBase(entrada.value, 3)">
<input type=button name=actuar value="Decimal a cualquier Base"
    onclick="salida.value = Cualquiera(entrada.value)">
</form>
</body>
</html> 
Cuestiones:

¿Mejoras posibles a las rutinas...?
¿Otras conversiones no reflejadas...?
¿Merece ponerlo en las FAQs...?

Si alguien sabe de otras conversiones, y quiere aportarlas,
o si sabe de alguna implementación mejor (más eficiente, más didáctica...)

Posibilidades:

Un sitema más eficiente para cambios de base, podría ser que admitiera bases mayores a 9, dando un resultado en forma de polinomios (Creo que sería didáctico, aunque poco útil)
Cambiar las rutinas existentes de tipo recursivas en no-recursivas y viceversa...

Bueno, no espero soluciones, sino discutir (que nadie vaya a comerse mucho el coco)

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:30.