在C中从二进制转换为char

时间:2012-05-30 22:33:09

标签: c character-encoding binary char type-conversion

我对如何从二进制值转换为c中的char感到困惑。

例如,我们说我有01010110,并希望打印相应的字母' V'从那以后。我该怎么做呢?

感谢您的帮助!

3 个答案:

答案 0 :(得分:14)

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

输出:

01010110 = V = 86 = 0x56

参考文献:

答案 1 :(得分:4)

您可以使用strtol()来解析字符串上的数字。最后一个参数(在本例中为2)是转换的基数。

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

有关此函数和其他数字解析函数here的更多信息。

答案 2 :(得分:-1)

略有不同:

从二进制文件中,我在数学上计算了int,并简单地将int转换为char。

int i;
char c = (char)i;