Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert from a binary to char in C

I'm flummoxed by how to convert from a binary value to a char in c.

For example, let's say I have 01010110 and want to print the corresponding letter 'V' from that. How do I do this?

Thanks for any help!

like image 758
Jordan Avatar asked May 30 '12 22:05

Jordan


2 Answers

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

Output:

01010110 = V = 86 = 0x56

References:

  • strtol()
  • Correct usage of strtol()
like image 84
Jonathan Leffler Avatar answered Nov 06 '22 21:11

Jonathan Leffler


You can use strtol() to parse a number on a string. The last argument (in this case 2) is the radix for the conversion.

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

More information about this and other number parsing functions here.

like image 6
fbafelipe Avatar answered Nov 06 '22 20:11

fbafelipe