Cambiar valores a otros sistemas numéricos

 
Primero, pasaremos a explicar que son los sistemas numéricos:

Un sistema numérico es el sistema para representar cantidades abstractas denominadas números. Un sistema numérico está definido por la base, que es el número de símbolos diferentes que se utilizan para representar un número. El sistema más conocido es el decimal (base 10), que está representado por 10 dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).

Sin embargo, en nuestros scripts, podemos necesitar convertir cantidades de un sistema a otro. Los principales sistemas utilizados en programación son:

SistemaBaseDígitos representados
Binario20, 1
Octal80, 1, 2, 3, 4, 5, 6, 7
Decimal100, 1, 2, 3, 4, 5, 6, 7, 8, 9
Hexadecimal160, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F


Como vemos la forma de representarlos es muy sencilla, según se vayan necesitando por la "base" se coge primero de los diez dígitos numéricos y a continuación se cogen las letras del abecedario por el orden de este. Así en base 3 tendríamos {0, 1, 2}, en base 21 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, J ,K} y así sucesivamente.

El valor de cada cifra viene indicado por la posición de esta en función de los valores exponenciales de la base. Así en el sistema decimal, tenemos que 348 es la representación de: (3 * 102) + (4 * 101) + (8 * 100). O por ejemplo en el sistema binario 1101001 es la representación de: (1 * 26) + (1 * 25) + (0 * 24) + (1 * 23) + (0 * 22) + (0 * 21) + (1 * 20) lo que en decimal sería 105, mientras que por ejemplo en hexadecimal FA sería: (15 * 161) + (10 * 160) lo que en decimal sería 250, ya que A vale 10, B 11, C 12, y así sucesivamente.

Pasar de sistema numérico a otro con JavaScript es muy sencillo con el método toString, este método se encuentra en todas las clases, pero en la clase number (asignada a las variables numéricas). puede recibir un valor optativo, este valor es la base del sistema numérico al que queremos pasar el número.

El código de ejemplo por lo tanto es muy sencillo, lo único que hace es recibir el número y la base, forzarlos como tipos numéricos y aplicarlos el método toString.

Por último recordar que en javascrit se pueden pasar campos numérico en decimal por ejemplo: [129], en octal añadiendo al número un 0 (cero) antes [0126], o en hexadecimal añadiendo al número un 0x (cero y equis) antes [0xff12].
Recordar también que este método puede recibir como máximo hasta base 36 y como mínimo base 2.


En el HEAD:
<script language="javascript">
//Su explorador no soporta java o lo tiene deshabilitado; esta pagina necesita javascript para funcionar correctamente<!--
//Copyright © McAnam.com
    
    function sCambiaSistema(numero, base){
        
        var iNumero = new Number(numero);
        var iBase = new Number(base);
        
        return (iNumero.toString(iBase));
        
    }
//-->    
</script>

En el BODY:
<input type="button" value="Pasar 192 de decimal a binario" onclick="alert(sCambiaSistema(192, 2))">
<br>
<input type="button" value="Pasar F19A2 de hexadecimal a decimal" onclick="alert(sCambiaSistema(0xF19A2, 10))">
<br>
<input type="button" value="Pasar 777 de Octal a hexadecimal" onclick="alert(sCambiaSistema(0777, 16))">
<br>
<input type="button" value="Pasar 1007 de decimal a base 36" onclick="alert(sCambiaSistema(1007, 36))">

Links relacionados:
Validar el formato de un C.I.F. pasado (Utiliza toString con la clase string)


Para cualquier duda, consulta, sugerencia, opinión, colaboración, etc; no dude en ponerse en contacto con nosotros

Copyright © 2002-2017 [McAnam]. Reservados todos los derechos.
www.mcanam.com