2012-05-30 12 views
7

Estoy desconcertado por cómo convertir de un valor binario a un carácter en c.Convertir de un binario a un char en C

Por ejemplo, digamos que tengo 01010110 y quiero imprimir la letra correspondiente 'V' a partir de eso. ¿Cómo hago esto?

¡Gracias por cualquier ayuda!

+1

¿Qué quieres decir con "1010110"? El número binario en un registro, los caracteres 1/0, ¿qué? (Si es el valor binario, un molde '(char)' es todo lo que necesita.) –

+2

¡Muéstranos el código! De lo contrario, estamos adivinando. – abelenky

Respuesta

13
#include <stdio.h> 
#include <stdlib.h> 
int main(void) 
{ 
    char *data = "01010110"; 
    char c = strtol(data, 0, 2); 
    printf("%s = %c = %d = 0x%.2X\n", data, c, c, c); 
    return(0); 
} 

de salida:

01010110 = V = 86 = 0x56 

Referencias:

4

Se puede utilizar para analizar strtol() un número en una cadena. El último argumento (en este caso 2) es la raíz para la conversión.

char c = strtol("01010110", (char **)NULL, 2); 

Más información sobre este y otros números analizar funciones here.

-1

hizo algo ligeramente diferente:

Desde el binario, lo calculado matemáticamente la int y simplemente fundido el int en un char.

int i; 
char c = (char)i; 
+0

La conversión final es evidente por sí misma; la mano 'agitando' desde el binario, matemáticamente calcula el int 'no contiene información útil. –