Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
/**
* Traductor de binario a texto (binario a español) en C
* @date 2019-12-18
* @author parzibyte
* @see https://parzibyte.me/blog
* */
#include <stdio.h>
#include <string.h>
// Inspirado en
//https://parzibyte.me/blog/2018/11/19/convertir-binario-decimal-c/
int binarioADecimal(char *cadenaBinaria, int longitud) {
int decimal = 0;
int multiplicador = 1;
char caracterActual;
for (int i = longitud - 1; i >= 0; i--) {
caracterActual = cadenaBinaria[i];
if (caracterActual == '1') {
decimal += multiplicador;
}
multiplicador = multiplicador * 2;
}
return decimal;
}
int main(void) {
// El binario que vamos a traducir
char textoBinario[] = "01001101 01101001 00100000 01101110 01101111 01101101 01100010 01110010 01100101 00100000 01100101 01110011 00100000 01001100 01110101 01101001 01110011 00100000 01000011 01100001 01100010 01110010 01100101 01110010 01100001 00100000 01000010 01100101 01101110 01101001 01110100 01101111";
printf("En binario es: \n%s\n", textoBinario);
char delimitador[] = " "; // Para separar cada octeto
// Separar cadena por espacios. https://parzibyte.me/blog/2018/11/13/separar-cadena-delimitadores-c-strtok/
char *octeto = strtok(textoBinario, delimitador);
printf("En texto es: \n");
while (octeto != NULL) {
char letra = (char) binarioADecimal(octeto, (int) strlen(octeto));
printf("%c", letra);
octeto = strtok(NULL, delimitador);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment