In C

2012-05-30 3 views
7

konvertieren von einer Binärdatei in Char. Ich bin flummoxed, wie von einem binären Wert in ein Zeichen in c konvertieren.In C

Zum Beispiel, sagen wir, ich habe 01010110 und möchte den entsprechenden Buchstaben 'V' aus diesem drucken. Wie mache ich das?

Danke für jede Hilfe!

+1

Was meinst du mit "1010110"? Die Binärzahl in einem Register, die 1/0 Zeichen, was? (Wenn es sich um den binären Wert handelt, genügt ein '(char)' Cast.) –

+2

Zeig uns Code !! Sonst raten wir. – abelenky

Antwort

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

Ausgang:

01010110 = V = 86 = 0x56 

Referenzen:

4

Sie können strtol() verwenden zu analysieren eine Zahl an einer Zeichenfolge. Das letzte Argument (in diesem Fall 2) ist das Radix für die Konvertierung.

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

Weitere Informationen über diese und andere Anzahl Parsen Funktionen here.

-1

etwas etwas anders getan habe:

aus dem binären ich die int mathematisch berechnet und einfach den int in ein char gegossen.

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

Die endgültige Konvertierung ist selbstverständlich; das Hand-waving 'von der binären, ich berechnete mathematisch int' enthält keine nützliche Information. –