python

Python: convertir decimal a octal

Hoy veremos cómo convertir un número decimal (base 10) a octal (base 8) usando el lenguaje de programación Python y código escrito por nosotros.

Con esto me refiero a que no vamos a usar funciones que el lenguaje provee, sino que nosotros vamos a desarrollar el algoritmo y escribir el código para convertir de decimal a octal en Python.

Algoritmo general

Al igual que cuando convertimos de decimal a binario, lo que tenemos que hacer es ir dividiendo el número decimal entre la base, que en este caso es 8. Y obtener el residuo de esa división. Todo esto mientras el decimal es mayor a 0.

Si bien podríamos usar Divmod, lo haremos por separado. Es decir, primero vamos a obtener el residuo, agregarlo a la cadena octal y después vamos a dividir al decimal.

En algún momento del tiempo el decimal dejará de ser mayor que 0 y el ciclo se va a detener, regresando así el número octal.

Verás que es realmente sencillo hacer esto con Python.

Código fuente

Una vez que he explicado el algoritmo, veamos el código fuente. He colocado todo el funcionamiento en una función para que el código en Python sea reutilizable. Queda así:

def decimal_a_octal(decimal):
    octal = ""
    while decimal > 0:
        residuo = decimal % 8
        octal = str(residuo) + octal
        decimal = int(decimal / 8)
    return octal

Fíjate en la línea 6, en este caso debemos convertir a entero el resultado de la división para descartar el residuo, ya que el residuo lo calculamos anteriormente con %.

Uso de la función

Te mostraré un ejemplo de uso. En este caso le solicito al usuario un número decimal a través de input, y después lo envío a la función. Toma en cuenta que el número decimal debe ser entero, por lo que puedes usar int para convertirlo.

"""
    https://parzibyte.me/blog
"""


def decimal_a_octal(decimal):
    octal = ""
    while decimal > 0:
        residuo = decimal % 8
        octal = str(residuo) + octal
        decimal = int(decimal / 8)
    return octal


decimal = int(input("Ingresa un número decimal: "))
octal = decimal_a_octal(decimal)
print(f"El decimal {decimal} es {octal} en octal")

Al ejecutarlo los resultados son correctos:

Convertir decimal a octal en Python – Ejecución de código

He usado mi conversor de bases con JS para hacer la comprobación. Si haces clic aquí podrás ver más tutoriales de Python.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.