Convert from a binary to char in C

后端 未结 3 738
臣服心动
臣服心动 2020-12-16 18:37

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 t

相关标签:
3条回答
  • 2020-12-16 19:25
    #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()
    0 讨论(0)
  • 2020-12-16 19:29

    Did something slightly different:

    From the binary, I mathematically calculated the int and simply casted the int into a char.

    int i;
    char c = (char)i;
    
    0 讨论(0)
  • 2020-12-16 19:35

    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.

    0 讨论(0)
提交回复
热议问题