Libreria: Convertir Bases Numéricas Python3



Puedes encontrar la carpeta con todos los proyectos, librerías y ejemplo en Github, puedes clickear la imagen o el vinculo de la barra de menu:



Para contar y ordenar necesitamos los números, estos podemos representarlos en bases numéricas, siendo la más utilizada la base decimal (10).

Base decimal o base 10, significa que disponemos de 10 símbolos para representar una cantidad, en este caso su rango de dígitos es del 0 al 9.

¿Y las computadoras que base numérica utilizan?

Binario, las computadoras solo son capaces de procesar la base numérica 2, cuyos dígitos son solamente el 0 y el 1.

¿Las bases numéricas solo contienen números?

Solo algunas bases, a partir de la base 11, cuyo rango va de 0 a 10, sustituimos el 10 y los números mayores a este con caracteres del alfabeto, comenzado por ‘A’. Por ejemplo, del 10 al 15 utilizaríamos A a la F.

¿Cuál es la mayor base alfanumérica?

No hay límite, podemos tener base 36 donde su rango va de 0 a Z.

¿Qué pasa con bases numéricas mayores a 36?

Debemos dejar de utilizar letras mayúsculas e incluir letras minúsculas además de símbolos para representar los números, por ejemplo 102 decimal a base 64  = Bm.

Si seguimos subiendo, por ejemplo Base 256, nos quedaríamos cortos de símbolos pues la tabla ASCII solo tiene 223 símbolos representables, por ende deberíamos incluir letras griegas o cualquier otro tipo de símbolos para completar.

¿Cómo convertir un número a otro de distinta base?

Utilizando el módulo de una división, en pocas palabras su residuo.

Si tenemos el 10 decimal y lo queremos en octal (base 8) utilizamos MOD (%).

13 % 8 = 5 -> Este es nuestro primer número base 8.

13 – 5 = 8 ->  Restamos el modulo (residuo) al número original   
   
8 / 8 = 1 -> Este es nuestro nuevo número base 10, como es mayor a 0 debemos seguir dividiendo y obteniendo el modulo.

1 % 8 = 1 -> Este es nuestro segundo número base 8.

1 – 1 = 0 ->  Restamos el modulo (residuo) al número original 
       
0 / 0 = 0 -> El numero original es 0, no queda nada por convertir por lo cual la operación terminó.

Nuestro número obtenido es 5 y 1, pero se debe leer de derecha a izquierda, por lo tanto:

13 Base 10  =  15 Base 8

Librería en Python 3:

Puedes encontrar la librería ChibiBases en el proyecto de Github, para ello descarga la librería “ChibiBases.py” e impórtala a tu programa en Python (el archivo debe estar en la misma carpeta o deberas referenciar su ubicación en el disco).

import ChibiBases  # Importamos la librería

Ahora puedes acceder a sus funciones de conversión:

str ChibiBases.convertirdecimalabase(int Numero,int Base):

Esta función convierte un decimal en la base que se le pide. Número y Base son de tipo int.

La función retorna el numero convertido a la base deseaba, en formato string o cadena.

Ejemplo: ChibiBases.convertirdecimalabase(124, 36)) Retorna “3G

int ChibiBases.convertirbaseadecimal(str Numero, int Base):

Esta función convierte un número de cualquier base en su respectivo número decimal.

Número es una cadena str que contiene un número en cualquier base, Base es un int que contiene la base del número ingresado.

La función retorna un int con el decimal respectivo del número ingresado.

Ejemplo: ChibiBases.convertirbaseadecimal("174", 8) Retorna 124

¿Cómo utilizar la librería para cambiar entre distintas bases?

Si tienes un decimal puedes convertirlo a cualquier base.

Si tienes un hexadecimal y quieres convertirlo, por ejemplo a octal, deberías convertir primero el hexadecimal a decimal, y luego de decimal a octal.

En la carpeta de Github encontraras un archivo Ejemplo.py que demuestra su uso.

¿No te parece este procedimiento?

La librería está protegida con derechos de autor utilizando GPL V3, esto significa…. que ¡puedes sentirte libre de modificar la librería a tu gusto!, puedes incluirle funciones nuevas o mejorarla, siempre y cuando incluyas la licencia original tanto externa (el archivo LICENSE) y el aviso de derechos de autor que está dentro de la librería.


Happy Coding!

No hay comentarios.