2012-05-30 21 views
7

Sono imbastito da come convertire da un valore binario a un carattere in c.Conversione da binario a char in C

Ad esempio, supponiamo di avere 01010110 e di voler stampare la lettera "V" corrispondente da quella. Come faccio a fare questo?

Grazie per qualsiasi aiuto!

+1

Cosa intendi con "1010110"? Il numero binario in un registro, i caratteri 1/0, cosa? (Se è il valore binario, un cast '(char)' è tutto ciò che serve.) –

+2

Mostraci il codice !! Altrimenti stiamo indovinando. – abelenky

risposta

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); 
} 

uscita:

01010110 = V = 86 = 0x56 

Riferimenti:

4

È possibile utilizzare per analizzare strtol() un numero su una stringa. L'ultimo argomento (in questo caso 2) è la radice per la conversione.

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

Maggiori informazioni su questa e altre funzioni numero parsing here.

-1

ha fatto qualcosa di leggermente diverso:

Dal binario, ho matematicamente calcolato l'int e semplicemente fusa int in un char.

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

La conversione finale è evidente; sventolando a mano 'dal binario, ho calcolato matematicamente l'int' non contiene informazioni utili. –