Para terminar la serie de ejercicios sobre conversiones de números entre distintas bases veremos cómo convertir un número octal a decimal usando el lenguaje de programación C.

Es exactamente el mismo algoritmo que usamos para convertir hexadecimal a decimal; únicamente cambia la base (de 16 a 8, porque octal es base 8) y la obtención de la equivalencia.

Octal a decimal en C

Lecturas recomendadas

Decimal a binario, octal y hexadecimal en C

Binario a decimal en C

Convertir hexadecimal a decimal en C

Algoritmo para convertir octal a decimal en C

Como lo dije, es igual que convertir hexadecimal a decimal. Ahora en lugar de elevar el 16 a la potencia según la posición, vamos a elevar el número 8.

Por otro lado, ya no necesitamos hacer una conversión tan larga; pues en octal se usan los dígitos del 0 al 7, no hay letras y por lo tanto podemos aplicar el truco de convertir un char a su representación entera.

Recorremos la cadena de derecha a izquierda y por cada carácter multiplicamos su valor por el resultado de elevar 8 a una potencia. Primero la potencia es 0, luego es 1 y así sucesivamente conforme nuestra cadena sea más larga.

Función que convierte octal a decimal en C

Aquí está el código de la función. Recibe como argumentos la cadena que representa al número octal y la longitud de la misma; devuelve un unsigned long long representando el número decimal.

See the gist on github.

No vemos el 8 en ningún lado porque tenemos definida arriba la base con #define BASE 8. Para la equivalencia simplemente restamos ‘0’ al valor; dándonos su representación entera.

Por cierto, recuerda que aquí puedes ver cómo elevar un número a una potencia en C.

Uso de la función y ejemplo de conversión

Para implementarla podemos hacer esto:

See the gist on github.

Recuerda que leemos con fgets para mayor seguridad. Para sacar la longitud de la cadena usamos strlen y lo demás ya está explicado.

Probar ejemplo en vivo

Como ya es costumbre, dejo aquí un enlace que te permite ejecutar el código de ejemplo en C para convertir un octal a decimal.

Si no estás seguro, pruébalo en el conversor octal a decimal online.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

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/

Compartir
Publicado por
parzibyte

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

21 horas hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

2 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

2 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

3 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.