2012-05-30 12 views
7

Jestem zafalowany, jak przekonwertować z wartości binarnej na char w c.Konwertuj z binarnego na char w C

Na przykład, powiedzmy, że mam 01010110 i chcę wydrukować odpowiednią literę "V" z tego. Jak mam to zrobic?

Dzięki za pomoc!

+1

Co masz na myśli mówiąc "1010110"? Numer binarny w rejestrze, znaki 1/0, co? (Jeśli jest to wartość binarna, wystarczy rzutowanie '(char)'). –

+2

Pokaż nam kod !! W przeciwnym razie zgadujemy. – abelenky

Odpowiedz

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

wyjścia:

01010110 = V = 86 = 0x56 

Referencje:

4

strtol() można użyć do analizowania liczba na ciągu. Ostatni argument (w tym przypadku 2) jest podstawą do konwersji.

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

Więcej informacji na ten temat i numer analizowania innych funkcji here.

-1

Czy coś nieco innego:

Z binarnym, to matematycznie obliczony int i po prostu lanego int na char.

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

Ostateczne nawrócenie jest oczywiste; "machając ręką" z binarnego, matematycznie obliczyłem int "nie zawiera żadnych użytecznych informacji. –