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…

3 días 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…

4 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:…

4 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…

5 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…

2 semanas hace

PHP y JavaScript: llenar select con AJAX

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

2 semanas hace

Esta web usa cookies.